我尝试测试示例代码bird.js(https://expressjs.com/en/guide/routing.html)。基本上,如下所示。
var express = require('express')
var router = express.Router()
router.use(function timeLog (req, res, next) {
console.log('Time: ', Date.now())
next()
})
但是当我运行它时。
node bird.js
我收到此错误。
TypeError: Cannot read property 'use' of undefined
顺便说一句,已安装“ express”。
其他信息 “ express”:“ 3.2.x”,
TypeError: Cannot read property 'use' of undefined
at Object.<anonymous> (../route/bird.js:5:7)
at Module._compile (module.js:410:26)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Function.Module.runMain (module.js:442:10)
at startup (node.js:136:18)
at node.js:966:3
bird.js是我运行的全部内容。
var express = require('express')
var router = express.Router()
// middleware that is specific to this router
router.use(function timeLog (req, res, next) {
console.log('Time: ', Date.now())
next()
})
// define the home page route
router.get('/', function (req, res) {
res.send('Birds home page')
})
// define the about route
router.get('/about', function (req, res) {
res.send('About birds')
})
module.exports = router
答案 0 :(得分:1)
问题是您使用的是过时的Express版本。您所指的文档是用于快递4.x.x
,并且您正在使用3.x.x
。
将您的快速版本更新为最新版本,您的代码即可正常工作。
npm install express@latest
将您的快速版本更新为:4.16.3
答案 1 :(得分:0)
您应该尝试这种方式。
router.use('/',timeLog, function(req, res, next) {
console.log('Time: ', Date.now())
next()
})
希望它会有所帮助。
答案 2 :(得分:0)