我找不到问题出在哪里,nodejs 控制台也没有说太多。
错误:
TypeError: app.use() 需要 EventEmitter.use (C:\Users\Ezequiel\Desktop\mobile_standard\server\StandardServer\node_modules\express\lib\application.js:210:11) 中对象的中间件函数。(C:\Users\Ezequiel\Desktop\mobile_standard\server\StandardServer\app.js:21:5) 在 Module._compile (module.js:409:26) 在 Object.Module._extensions..js (module.js) :416:10) 在 Module.load (module.js:343:32) 在 Function.Module._load (module.js:300:12) 在 Function.Module.runMain (module.js:441:10) 启动时(node.js:139:18)在node.js:968:3
app.js(第 21 行 -> app.use(require('./controllers/login'));)
const express = require('express');
const cors = require('cors');
const bodyParser= require('body-parser');
const MongoClient = require('mongodb').MongoClient
const mongoose = require('mongoose');
const jwt = require('jsonwebtoken');
const app = express();
var config = require('./config');
var User = require("./models/user");
app.use(cors());
app.options('*', cors());
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());
mongoose.connect(config.database);
app.set('superSecret', config.secret);
app.use(require('./middlewares/auth'));
app.use(require('./controllers/login'));
app.get('/normal', function(req,res){
res.json({
prueba:'recibido',
success: true
})
})
app.listen(process.env.PORT || 8081, () => {
})
Run Code Online (Sandbox Code Playgroud)
控制器 - 登录,这就是问题所在。关于 Express 我看不到的东西:
var express = require('express');
var jwt = require('jsonwebtoken');
var auth = require('../middlewares/auth');
var apiRoutes = express.Router();
var User = require("../models/user");
apiRoutes.post('/authenticate',auth, function(req, res) {
User.findOne({
email: req.body.user.email
}, function(err, user){
if (err) throw err;
if (!user){
//res.json({success: false, message: 'No encontramos tu usuario registrado!'});
//Crear nuevo usuario
var newUser = new User(req.body.user);
newUser.save(function(err){
if(err) throw err;
var token = jwt.sign(newUser, app.get('superSecret'),{
});
res.json({
success: true,
token: token
});
})
}else if (user){
var token = jwt.sign(user, app.get('superSecret'),{
});
res.json({
success: true,
token: token
});
}
})
})
apiRoutes.get('/testToken', function(req, res){
res.json({
msg: 'token funciona'
})
})
Run Code Online (Sandbox Code Playgroud)
登录控制器没有导出任何内容。
只需将其添加到登录控制器文件的末尾:
module.exports = apiRoutes
Run Code Online (Sandbox Code Playgroud)
更多信息可以在这个问题或文档module.exports
中找到
归档时间: |
|
查看次数: |
2673 次 |
最近记录: |