Máy chủ phân tích cú pháp tự lưu trữ trên Heroku
Thiết lập Heroku, MongoDB và Phân tích cú pháp
- Truy cập https://signup.heroku.com/ và đăng ký tài khoản
- Xác minh email của bạn và đăng nhập vào Heroku
- Chuyển đến Triển khai một máy chủ phân tích cú pháp cho Heroku
- Nhấp vào "Triển khai đến Heroku"
- Đặt tên cho máy chủ phân tích cú pháp của bạn
- Hiện tại, hãy bỏ qua APP_ID và MASTER_KEY của ứng dụng, chúng tôi sẽ thiết lập điều đó ở bước sau.
- Nhấp vào "Triển khai miễn phí"
- Nếu hộp bên dưới xuất hiện, hãy nhập thông tin thẻ tín dụng của bạn để xác minh tài khoản của bạn. Đừng lo lắng, bạn sẽ không bị tính phí trừ khi bạn nâng cấp tài khoản của mình sau này . Đây chỉ đơn giản là một biện pháp an ninh mà Heroku áp dụng để ngăn chặn hành vi lạm dụng.
- Heroku sẽ tạo ứng dụng của bạn. Trong nền, nó cũng sẽ tạo một repo .git cho bạn và sao chép nội dung của git repo chính thức phân tích cú pháp-máy chủ-ví dụ, tạo cơ sở dữ liệu MongoDB và định cấu hình ứng dụng Heroku của bạn để sử dụng DB đó.
- Khi ứng dụng được tạo, bạn sẽ được đưa đến trang tổng quan Heroku hoặc bạn có thể đến đó bằng cách đăng nhập, nhấp vào "Ứng dụng cá nhân", sau đó nhấp vào tên máy chủ phân tích cú pháp của bạn
- Trên trang tổng quan của ứng dụng, nhấp vào "Cài đặt", sau đó nhấp vào "Hiển thị các vars cấu hình"
- Điền vào APP_ID và MASTER_KEY của ứng dụng của bạn. Nếu bạn có ứng dụng trên Parse.com ngay bây giờ, bạn có thể sử dụng các khóa tương tự mà ứng dụng đó sử dụng. Bạn có thể tìm địa chỉ tại
https://www.parse.com/apps/<APP_NAME>/edit#keys
ở đâu<APP_NAME>
là tên ứng dụng của bạn. Nếu bạn đang tạo một ứng dụng mới, bạn có thể tạo các khóa ngẫu nhiên tại đây. Bạn có thể thêm khóa mới cho bất kỳ sdk nào bạn định sử dụng, tôi đang thêm một khóa cho sdk javascript tại đây.
- Ghi lại giá trị của MONGOLAB_URI, bạn sẽ cần giá trị này sau nếu muốn chuyển dữ liệu Phân tích cú pháp hiện có sang DB mới
- Cuộn xuống và ghi chú Url Git và miền Heroku cho ứng dụng của bạn, bạn sẽ cần những thứ này sau
-
Cài đặt Heroku Toolbelt là một công cụ giao diện dòng lệnh để quản lý các ứng dụng Heroku của bạn.
-
Mở lời nhắc đầu cuối và nhập
$ heroku login
, nhập email và mật khẩu Heroku của bạn -
Nhập
$ heroku git:clone -a <MY_APP_NAME>
(ở đâu<MY_APP_NAME>
là tên của ứng dụng heroku của bạn) để tạo bản sao cục bộ của kho mã máy chủ của bạn, bạn cũng có thể sử dụng url git từ chúng tôi đã thấy trước đó. Khi bạn sao chép kho lưu trữ, bạn sẽ thấy thông báo "cảnh báo:Có vẻ như bạn đã nhân bản một kho lưu trữ trống.". Thư mục ứng dụng sẽ được tạo nhưng nó sẽ chỉ chứa các tệp git tiêu chuẩn và không có máy chủ phân tích cú pháp. Để khắc phục điều này. Đi tới repo git ví dụ phân tích cú pháp chính thức, tải xuống tệp zip của repo. Giải nén thư mục, kéo tất cả các tệp và thư mục từ thư mục phân tích cú pháp-server-example-master vào thư mục ứng dụng của bạn. -
Quay lại nhà ga, nhập
$ cd <MY_APP_NAME>
để chuyển vào repo
Bật CORS (để bạn có thể sử dụng API từ các miền khác)
- Trên ổ cứng của bạn, hãy tìm và mở bản sao cục bộ của repo mà chúng tôi vừa tạo
- Trong thư mục, mở
package.json
và thêm"cors": "*"
đối vớidependencies
như thế này:
.
"dependencies": {
"express": "~4.2.x",
"kerberos": "~0.0.x",
"parse": "~1.6.12",
"parse-server": "~2.0", // <= don't forget this comma
"cors": "*" // add this line
}
LƯU Ý
Đảm bảo xóa các nhận xét trên trong mã thực của bạn vì nó sẽ không phải là JSON hợp lệ
- Mở
index.js
và thực hiện những thay đổi này:
.
var express = require('express'); // find this line in the file
var cors = require('cors') // add this line below it
//....
//var databaseUri = process.env.DATABASE_URI || process.env.MONGOLAB_URI // old name, you may need to change this for new deployments
var databaseUri = process.env.DATABASE_URI || process.env.MONGODB_URI // changed to MONGODB_URI in Heroku!
//....
var app = express(); // find this line in the file
app.use(cors()); // add this line below it
//Add declarations for any keys you plan to use as shown below
var api = new ParseServer({
databaseURI: databaseUri || 'mongodb://localhost:27017/dev',
cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
appId: process.env.APP_ID || 'myAppId',
masterKey: process.env.MASTER_KEY || '',
serverURL: process.env.SERVER_URL || 'http://localhost:1337',
javascriptKey: process.env.JAVASCRIPT_KEY || '', //** add this line no need to set values, they will be overwritten by heroku config vars
restAPIKey: process.env.REST_API_KEY || '', //** add this line
dotNetKey: process.env.DOT_NET_KEY || '', //** add this line
clientKey: process.env.CLIENT_KEY || '', //** add this line
});
- Quay lại cửa sổ terminal, đảm bảo rằng bạn vẫn ở trong thư mục của repo mà chúng tôi đã sao chép và nhập thông tin bên dưới để thực hiện các thay đổi cho Heroku:
.
$ git add .
$ git commit -am "make it better"
$ git push heroku master
Kiểm tra Máy chủ phân tích cú pháp mới của bạn
- Truy cập trang jsFiddle này
- Thay đổi
<MY_APP_ID>
,<MY_JS_KEY>
,<MY_HEROKU_APP_NAME>
trong việc tìm kiếm các giá trị thích hợp cho ứng dụng của bạn, sau đó nhấp vào "Chạy"
.
Parse.initialize('<MY_APP_ID>', '<MY_JS_KEY>');
Parse.serverURL = 'https://<MY_HEROKU_APP_NAME>.herokuapp.com/Parse'
- Bạn sẽ nhận được cảnh báo bên dưới cho bạn biết rằng máy chủ Phân tích cú pháp mới của bạn đang hoạt động bình thường
LƯU Ý:
Nếu bạn sử dụng công cụ jsfiddle với nhiều phiên bản máy chủ phân tích cú pháp, bạn có thể gặp lỗi "mã thông báo phiên không hợp lệ". Nếu điều này xảy ra, hãy mở bảng điều khiển dành cho nhà phát triển và xóa tất cả các khóa "phân tích cú pháp" khỏi bộ nhớ cục bộ, sau đó, nó sẽ hoạt động:
Di chuyển dữ liệu hiện có của bạn từ Phân tích cú pháp
Bạn nên làm điều này ít nhất một lần với một ứng dụng thử nghiệm trước khi di chuyển một ứng dụng sản xuất. Ngoài ra, có vẻ như các tệp files
từ ứng dụng cũ của bạn có thể chưa chuyển, hãy xem Sự cố GitHub này
- Trước khi chúng tôi di chuyển , nếu MongoDB mới của bạn có dữ liệu thì quá trình di chuyển sẽ không thành công. Nếu bạn vừa kiểm tra máy chủ, vừa tạo và phản đối, hãy truy cập
https://dashboard.heroku.com/apps/<MY_HEROKU_APP_NAME>/resources
, nhấp vào "MongoLab" bên cạnh biểu tượng, sau đó, trên trang tiếp theo, nhấp vào "Xóa tất cả bộ sưu tập" - Truy cập
https://dashboard.parse.com/apps/<APP_NAME>/settings/general
ở đâu<APP_NAME>
là tên của phân tích cú pháp của bạn ứng dụng - Cuộn xuống trên trang và nhấp vào "Di chuyển"
- Trong phương thức, trong vùng màu xám (trông không giống đầu vào ...), hãy nhập
MONGOLAB_URI
mà chúng tôi đã lưu ý trước đó - Nhấp vào "Bắt đầu di chuyển"
- Khi quá trình di chuyển hoàn tất, hãy nhấp vào "Hoàn tất", sau đó trong cửa sổ bật lên, hãy nhấp vào "Đồng ý" khi quá trình di chuyển kết thúc, tất cả dữ liệu của bạn sẽ nằm trong cơ sở dữ liệu MongoDB mới của bạn.
- Hiện tại, trang tổng quan Phân tích cú pháp của bạn sẽ tiếp tục hiển thị dữ liệu của bạn hiện nằm trong DB mới. Để kiểm tra mọi thứ, hãy quay lại jsFiddle thử nghiệm mà chúng tôi đã sử dụng trước đó và chạy lại. Bây giờ, hãy chuyển đến bảng điều khiển Phân tích cú pháp của bạn và bạn sẽ thấy lớp và hàng mới được thêm vào. Lưu ý rằng khi tôi sử dụng bảng điều khiển Phân tích cú pháp mới, tôi có thể thấy số lượng hàng nhưng toàn bộ khu vực hàng đều trống. Tôi đã hoàn nguyên về trang tổng quan Phân tích cú pháp cũ và có thể thấy mọi thứ đều ổn.