NodeJS 如何修复“TypeError:use()需要一个中间件函数,但得到一个字符串”error?

vddsk6oq  于 2023-06-22  发布在  Node.js
关注(0)|答案(1)|浏览(95)

我得到以下错误。throw new TypeError('Router.use()需要一个中间件函数,但得到了一个' + gettype(fn))^
TypeError:Router.use()需要一个中间件函数,但得到了一个字符串

const express = require("express");
const bodyParser = require("body-parser");

const app = express();

app.use("view engine", "jade");

app.get("/", function(req, res){
res.send("Hello");

});

app.listen(3000, function() {
  //useNewUrlParser: true,
    //    useUnifiedTopology: true,S
  console.log("Server started on port 3000");
});

module.exports = router;
8cdiaqws

8cdiaqws1#

这是:

app.use("view engine", "jade");

应该是:

app.set("view engine", "jade");

app.use()是用于中间件的,它要求第二个参数是一个函数,错误是告诉你它在那里找到了一个字符串而不是一个函数。
它的呼叫签名为:

app.use([path,] callback [, callback...])

这意味着它可以像这样:

app.use("/somepath", fn1);
app.use(fn1);
app.use(fn1, fn2);

不可能是:

app.use("somestring", "otherstring");

这就是为什么当你试图将它与两个字符串一起使用时会得到一个错误。

相关问题