1
我使用的是後端的NodeJS部署應用程序的角度(以下this tutorial在鳴叫拉進我的應用程序的前端。如何使用的NodeJS
現在,我已經準備好部署到開發服務器,我我已經用ng build --prod
打包了前端,除了帶有加載推文的模塊之外,它的外觀和工作都很好,我該如何託管應用程序的節點服務器部分以正確顯示推文?
這裏是我的文件節點應用程序,它保存在我的項目文件夾的根目錄下,在src之外。
server.js
個var express = require('express');
var bodyParser = require('body-parser');
var cors = require('cors');
var functions = require('./functions');
var app = express();
app.use(bodyParser.urlencoded({extended: true}));
app.use(cors());
app.post('/authorize', functions.authorize);
app.post('/search', functions.search);
app.listen(3000);
console.log('listening now');
functions.js
var request = require('request');
var config = require('./config');
functions = {
authorize: function(req, res) {
var header = config.consumerkey + ':' +config.consumersecret;
var encheader = new Buffer(header).toString('base64');
var finalheader = 'Basic ' + encheader;
request.post('https://api.twitter.com/oauth2/token', {form: {'grant_type': 'client_credentials'},
headers: {Authorization: finalheader}}, function(error, response, body) {
if(error)
console.log(error);
else {
config.bearertoken = JSON.parse(body).access_token;
res.json({success: true, data:config.bearertoken});
}
})
},
search: function(req, res) {
var searchquery = req.body.query;
var encsearchquery = encodeURIComponent(searchquery);
var bearerheader = 'Bearer ' + config.bearertoken;
request.get('https://api.twitter.com/1.1/search/tweets.json?q=' + encsearchquery +
'&result_type=recent', {headers: {Authorization: bearerheader}}, function(error, body, response) {
if(error)
console.log(error);
else {
res.json({success: true, data:JSON.parse(body.body)});
}
})
}
}
module.exports = functions;
config.js
var appsettings = {
consumerkey: 'key',
consumersecret: 'key',
bearertoken: ''
};
module.exports = appsettings;
的package.json
{
"name": "backend",
"version": "1.0.0",
"description": "",
"main": "server.js",
"scripts": {
"start": "node server",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "brooklynbrim",
"license": "MIT",
"devDependencies": {
"body-parser": "^1.17.2",
"cors": "^2.8.4",
"express": "^4.15.4",
"request": "^2.81.0"
}
}
非常感謝,我會給它一個機會! Heroku上的任何端口信息是否需要更改? @Juan Camilo Giraldo Chaverra – bluebrooklynbrim
完美的解決方案! heroku教程起作用。我有一個(工作提供的開發)服務器,我必須使用,但我仍然會考慮我自己的項目的Firebase。謝謝! – bluebrooklynbrim