我正在用漂亮的標準構建一個快速服務器。我一直無法得到express.router()正確執行我的路由,這導致我更深入地瞭解當運行快速應用的服務器請求頁面時實際發生的情況。快速app.js是否在每個請求上運行?
console.log('App.JS has ran!');
var http = require('http');
var express = require('express');
var app = express();
var server = http.createServer(app);
var mongoose = require('mongoose');
mongoose.connect('mongodb://52.27.161.16');
mongoose.connection.on("connect",function(err) {
if (err) throw err;
console.log('hello found!');
});
var bodyParser = require('body-parser');
app.use(bodyParser.json());
var router = express.Router();
router.get('/hi'), function (req, res) {
res.send('/hi route response');
};
router.get('/', function(req, res) {
res.send('default route reached');
});
app.use('*', router);
server.listen(config.server.listenPort);
漂亮的標準的東西,但出於某種原因,每當我瀏覽到本地主機:端口/ HI我只是從/
路徑獲得res
,即router.get('/', function{} (res.send('default route reached'));
所以,我更感興趣的是什麼在幕後發生。我注意到服務器只在第一次請求時向終端登錄與bodyParser
無關的輸出。也就是說,文件頂部的console.log
只在應用程序啓動時運行,並且從未在後,儘管bodyParser
正確記錄了每個請求實例的請求。
請求發送到服務器時發生了什麼? app
對象和路由是否被緩存並被服務?爲什麼app.js
不針對每個請求重新評估?是否只有router
對象負責發送請求?
這將有助於知道這一點,找出爲什麼我的router
沒有響應正確的路線。
非常感謝!
當你說你瀏覽到'/ hi',是在瀏覽器中,還是你真的在做一個post請求? – snozza
您是否通過瀏覽器獲取或發佈請求? – Subburaj
輕微的錯誤,它實際上是'''.get'''。固定!感謝您的支持。 –