我爲特定的服務器功能創建了一個單獨的JS文件。示例代碼如下:ExpressJS - 路由功能
我-data.js
var exports = module.exports = {};
exports.getData = function (request, response) {
var myData = [
{
"value": 1
},
{
"value": 2
},
];
response.json(myData);
};
在我app.js,我試圖調用特定功能的請求已作出。 app.js
var express = require("express");
var app = express();
var port = process.env.PORT || 3000;
var myData = require("./lib/my-data.js");
app.engine(".html", require("ejs").__express);
app.set("views", __dirname + "/views");
app.set("view engine", "html");
app.use(express.static(__dirname));
// Line below is what I'm trying to achieve.
//app.get("/get-data", myData.getData(request, response));
// Working line
app.get("/get-data", function(request, response) {
myData.getData(request, response);
});
app.get("*", function (request, response) {
response.render("index");
});
app.listen(port, function() {
console.log("Listening on port " + port);
});
,我心裏雖然
app.get("/get-data", function(request, response) {
myData.getData(request, response);
});
確實行app.get("/get-data", myData.getData(request, response));
不起作用的
工作樣本。
這兩種方法有什麼區別?
我更喜歡使用第一個,因爲它乾淨而準確,但我似乎無法使其工作。
你有沒有試過:'app.get(「/ get-data」,myData.getData);'? –
嗨@NelsonYeung,它確實有效。您是否希望將其作爲答案發布,以便將問題標記爲已回答?另外,你能否簡要解釋爲什麼我的方法不起作用? –