簡體   English   中英

表達錯誤:拋出新的TypeError('Router.use()需要中間件功能,但得到了'+ gettype(fn));

[英]Express error: throw new TypeError('Router.use() requires middleware function but got a ' + gettype(fn));

我是Express js的新手。 我正在從教程的角度關注教程

我嘗試實現此處給出的示例,但始終收到以下錯誤

/home/krishna/.nvm/versions/node/v5.0.0/bin/node /home/krishna/self/projects/projects/Node/nativebag/bin/www
/home/krishna/self/projects/projects/Node/nativebag/node_modules/express/lib/router/index.js:458
      throw new TypeError('Router.use() requires middleware function but got a ' + gettype(fn));
      ^

TypeError: Router.use() requires middleware function but got a Object
    at Function.use (/home/krishna/self/projects/projects/Node/nativebag/node_modules/express/lib/router/index.js:458:13)
    at EventEmitter.<anonymous> (/home/krishna/self/projects/projects/Node/nativebag/node_modules/express/lib/application.js:220:21)
    at Array.forEach (native)
    at EventEmitter.use (/home/krishna/self/projects/projects/Node/nativebag/node_modules/express/lib/application.js:217:7)
    at Object.<anonymous> 

(/home/krishna/self/projects/projects/Node/nativebag/app.js:25:5)
    at Module._compile (module.js:425:26)
    at Object.Module._extensions..js (module.js:432:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Module.require (module.js:366:17)

Process finished with exit code 1

我已經在網上尋找解決方案,但無法解決。

這是我的代碼:

Index.js

var express = require('express');
var app = express();

var things = require('./things.js');

app.use('/things', things);
app.listen(3000);

things.js

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
    res.render('index', { title: 'Express' });
});

// POST hello world
router.post('/', function (req, res, next) {
    res.send("Hello World");
});

module.exports = router;

可以指出一點錯誤嗎?

謝謝。

這本質上是Express版本更改的問題。 下面是我更改的代碼,現在可以正常工作了。

var express = require('express');
var router = express.Router();

var things = require('./things.js');

router.use('/things', things);

module.exports = router;
// app.listen(3000);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM