https://hastebin.com/ipuyupuqop.js主JS文件
https://hastebin.com/meninifuku.js带有问题的JS文件
我一直在研究API,但是路由似乎不起作用。我已经克服了一些问题,但是,这是对我影响最大的问题。
C:\Users\-----\WebstormProjects\BoR-CORE\routes\v1\account.js:3
let router = express.Router();
^
TypeError: Cannot read property 'Router' of undefined
at Object.<anonymous> (C:\Users\-----\WebstormProjects\BoR-CORE\routes\v1\account.js:3:22)
at Module._compile (module.js:660:30)
at Object.Module._extensions..js (module.js:671:10)
at Module.load (module.js:573:32)
at tryModuleLoad (module.js:513:12)
at Function.Module._load (module.js:505:3)
at Module.require (module.js:604:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (C:\Users\-----\WebstormProjects\BoR-CORE\app.js:17:15)
at Module._compile (module.js:660:30)
答案 0 :(得分:1)
在我看来,您正在导出错误的文件。您需要导出路由器并将其导入app.js
。
应该是这样的:
//File router/index.js
const user = require('./user'),
error = require('./error'),
response = require('./response');
module.exports = function(app) {
app.get('/v1/details', user.checkUser, user.getDetails, response.sendResponse);
app.post('/v1/details', user.checkUser, user.insertDetails, response.sendResponse);
};
//Your `app.js`
"use strict";
//NPM Modules
const express = require('express'),
path = require('path'),
cookieParser = require('cookie-parser'),
bodyParser = require('body-parser'),
//Internal Modules
router = require('./router');
var app = express();
// configure the app to use bodyParser()
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(bodyParser.json());
console.log('server listening at 127.0.0.1 over port 2318'.info);
app.use(cookieParser());
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(express.static(path.join(__dirname, 'public')));
router(app);
let port = process.env.PORT || 8080;
app.listen(port);
答案 1 :(得分:0)
您应将路由器导出为module.exports = router;
答案 2 :(得分:0)
我认为问题出在您的第二个文件中。
只需要求('express')本身即可,而不是要求主应用程序获取表达对象。
我认为它应该这样工作。