NodeJS和console.log未记录

时间:2018-10-11 23:04:45

标签: javascript node.js express

因此,自从我使用节点以来一直很热闹,而且我一辈子都无法理解为什么它不起作用。

const body_parser = require("body-parser");
var express = require("express");
var app = express();

app.use("/", express.static(__dirname +  "/Contents/"));

app.get("/", function(req, res) {
    //Why wont this log to my terminal when a user visits the site?
    console.log("log it pleaseeeeeeeeee");
});

app.listen(5004, () => {
   console.log("server up and listening on port 5004");
});

每次用户访问该站点时,我都尝试将“ Log it Pleaseeeee”记录到运行我的nodejs应用程序的终端中。为什么不做这项工作?

1 个答案:

答案 0 :(得分:1)

对于端点,您不能有2个单独的处理程序,在您的情况下为“ /”

要实现所需的功能,必须提供一个中间件函数。

express将根据第二个参数的类型知道要做什么。 middleware 函数需要3个参数;最后一个是回调,因此它知道您何时准备就绪。

您应该通过将 get 函数移至app.use('/', ...)函数中并包含如下所示的回调参数来更改代码:

const body_parser = require("body-parser");
var express = require("express");
var app = express();

app.use("/", function(req, res, callback) {
   console.log("log it pleaseeeeeeeeee");
   callback()
}, express.static(__dirname +  "/Contents/"));

/** GET RID OF THIS
app.get("/", function(req, res) {
   //Why wont this log to my terminal when a user visits the site?
   console.log("log it pleaseeeeeeeeee");
});
*/

app.listen(5004, () => {
   console.log("server up and listening on port 5004");
});