[英]SyntaxError: Unexpected end of input at Module._compile in Node.js
我用 node.js 编写了 node.js 脚本。 这是代码。
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var passport = require('passport'); //passport module add
var localStrategy = require('passport-local').Strategy;
var cookieSession=require('cookie-session');
var index = require('./index.js');
var app=express();
app.use(cookieParser());
app.use(cookieSession({
keys : ['login'],
cookie : {maxAge:1000*60*60}
}));
app.use(passport.initialize());
app.use(passport.session());
app.use('/',index);
app.listen(8000,function(){
console.log('server started');
});
module.exports=app;
但由于第 8 行错误,我无法执行代码。
var index = require('./index.js');
错误:
语法错误:Node.js 中 Module._compile 的输入意外结束
在对象。 (/home/app.js:8:13)
我在同一个目录中有“index.js”文件,我试图加载没有扩展名的同一个文件。 但我不能执行它。
请告诉我该怎么做。
+) 这是我的 index.js 文件。
var express = require('express');
var router = express.Router();
var crypto=require('crypto');
var passport=require('passport');
var localStrategy=require('passport-local').Strategy;
var mysql=require('mysql');
var config={
host : 'my address',
port : 3306,
user : '*****',
password : '********',
ssl : true
};
const conn = new mysql.createConnection(config);
conn.connect(function(err){
if(err){
console.log('Cannot Connect to database : ');
throw err;
}
else{
console.log('Success to connect');
}
});
var isAuthenticated =function(req,res,next){
if(req.isAuthenticated()){
return next();
}
res.redirect('/');
}
passport.use(new localStrategy({
usernameField : 'userID',
passwordField : 'password',
passReqToCallback : true
},function(req,username,password,done){
conn.query('USE Database');
conn.query('select password from UserTable where userid=?',[username],function(err,result){
if(err){ done(false,null); }
if(result.length==0){
console.log('cannot find user');
done(false, null);
}
else{
var encryptHash=crypto.createHash('sha512').update(password);
if(encryptHash===password){
console.log('login succeed');
}
return done(null,null);
}
});
router.get('/logout',function(req,res){
req.logout();
res.redirect('/');
});
router.get('/main',function(req,res,next){
res.render('index');
});
router.post('/',passport.authenticate('local'),{failureRedirect:'/',successRedirect:'/main'});
module.exports=router;
我得到了错误。 您的中间件存在语法错误。
尝试这个:
passport.use(new localStrategy({
usernameField : 'userID',
passwordField : 'password',
passReqToCallback : true
},function(req,username,password,done){
conn.query('USE Database');
conn.query('select password from UserTable where userid=?',[username],function(err,result){
if(err){ done(false,null); }
if(result.length==0){
console.log('cannot find user');
done(false, null);
}
else{
var encryptHash=crypto.createHash('sha512').update(password);
if(encryptHash===password){
console.log('login succeed');
}
return done(null,null);
}
})
})
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.