Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node Json Json web tokens Router.use()需要中间件函数,但未定义_Javascript_Json_Node.js_Express - Fatal编程技术网

Javascript Node Json Json web tokens Router.use()需要中间件函数,但未定义

Javascript Node Json Json web tokens Router.use()需要中间件函数,但未定义,javascript,json,node.js,express,Javascript,Json,Node.js,Express,在NodeJS中创建登录类型,并尝试使用JSON令牌。下面是server.js: //依赖关系 var express=需要(“express”); var-app=express(); var bodyParser=require('body-parser'); var morgan=要求(“摩根”); var mongoose=require('mongoose'); var passwordHash=require('password-hash'); var jwt=require('js

在NodeJS中创建登录类型,并尝试使用JSON令牌。下面是server.js:

//依赖关系
var express=需要(“express”);
var-app=express();
var bodyParser=require('body-parser');
var morgan=要求(“摩根”);
var mongoose=require('mongoose');
var passwordHash=require('password-hash');
var jwt=require('jsonwebtoken');
var config=require('./config');
var User=require('./app/models/User');
//配置
var port=process.env.port | | 8080;
connect(config.database);
app.set('superSecret',config.secret);
//体分析器
app.use(bodyParser.urlencoded({
扩展:false
}));
use(bodyParser.json());
//摩根
应用程序使用(摩根(“开发”);
//路线
app.get('/',函数(req,res){
res.send('您好!API位于http://localhost:“+port+”/api');
});
应用程序获取('/setup',函数(req,res){
var hashedPassword=passwordHash.generate('catsanddogs');
var=新用户({
用户:“Tommy Birt”,
密码:hashedPassword,
管理员:错,
议员:是的,
位置:正确
});
//拯救
保存(函数(错误){
如果(错误)抛出错误;
console.log('Saved');
res.json({
成功:真的
});
});
});
//API路线
var apirouts=express.Router();
apiRoutes.get('/',函数(req,res){
res.json({
消息:“欢迎使用此api。”
});
});
apiRoutes.post('/authenticate',函数(req,res){
//优秀用户
User.findOne({
用户:req.body.user
},函数(错误,用户){
//一般错误。。。
如果(错误)抛出错误;
//不正确
如果(!用户){
res.json({
成功:错,
消息:“身份验证失败:无用户”
});
}else if(用户){
if(!passwordHash.verify(req.body.password,user.password)){
res.json({
成功:错,
消息:“身份验证失败:密码不正确”
});
}否则{
//代币!
var token=jwt.sign(用户,app.get('superSecret'){
过期蛋白:64000
});
res.json({
成功:没错,
信息:“享受您的代币!”,
令牌:令牌
});
}
}
})
});
应用程序使用('/api',apiRoutes);
apiRoutes.use(函数(req、res、next){
//让我们找到我们的代币!
var token=req.body.token | | req.query.token | | | req.headers['x-access-token'];
//我们找到了吗?
如果(令牌){
//核实一下!请不要吃饼干
jwt.verify(令牌,app.get('superSecret'),函数(err,decoded){
如果(错误){
//有些事情出错了。。。
返回res.json({
成功:错,
消息:“验证令牌失败”
});
}否则{
//没有错误!耶:)
req.decoded=已解码
next();
}
});
}否则{
//没有代币先生!下车!
返回res.satus(403)。发送({
成功:错,
信息:“停止作弊”
});
}
});
apiRoutes.使用('/bank',bankRoutes);
var bankrouts=express.Router();
bankRoutes.get('/balance',函数(req,res){
res.send(“欢迎使用您的余额!”);
});
//让我们滚吧
app.listen(端口);
console.log('我们在http://localhost"港口",;
基本上,每当我运行时,没有导航到任何东西,就会抛出以下错误:typeError:Router.use()需要中间件函数,但得到一个未定义的


发生了什么事?为什么会抛出此错误?

问题可能出在您的
银行路线中
-

apiRoutes.use('/bank', bankRoutes);

var bankRoutes = express.Router();
bankRoutes.get('/balance', function(req, res) {
  res.send("Welcome to your balance!");
});
在定义银行路线之前,您正在调用银行路线

所以像这样更改它(首先定义它,然后使用它)-


问题可能出在您的
银行路线中
-

apiRoutes.use('/bank', bankRoutes);

var bankRoutes = express.Router();
bankRoutes.get('/balance', function(req, res) {
  res.send("Welcome to your balance!");
});
在定义银行路线之前,您正在调用银行路线

所以像这样更改它(首先定义它,然后使用它)-


你也可以发布你的model user.js文件吗你也可以发布你的model user.js文件吗。。