Javascript 请求闪存(错误)未显示-NodeJS 5.7.0

Javascript 请求闪存(错误)未显示-NodeJS 5.7.0,javascript,node.js,ejs,Javascript,Node.js,Ejs,当用户输入一封已经在数据库中的电子邮件,让用户知道该帐户的电子邮件已经注册时,我正试图做到这一点。 我从mongo db获得了正确的错误,但我不想显示所有这些垃圾。我希望它只是在我的注册页面上的表单中显示我的错误,比如“此电子邮件地址已注册” MongoDB响应: MongoError: E11000 duplicate key error index: jcommerce.users.$email_1 dup key: { : "james12345@gmail.com" } at Fu

当用户输入一封已经在数据库中的电子邮件,让用户知道该帐户的电子邮件已经注册时,我正试图做到这一点。 我从mongo db获得了正确的错误,但我不想显示所有这些垃圾。我希望它只是在我的注册页面上的表单中显示我的错误,比如“此电子邮件地址已注册”

MongoDB响应:

MongoError: E11000 duplicate key error index: jcommerce.users.$email_1 dup key: { : "james12345@gmail.com" }
   at Function.MongoError.create (C:\jcommerce\node_modules\mongodb-core\lib\error.js:31:11)
   at toError (C:\jcommerce\node_modules\mongodb\lib\utils.js:114:22)
   at C:\jcommerce\node_modules\mongodb\lib\collection.js:616:23
   at handleCallback (C:\jcommerce\node_modules\mongodb\lib\utils.js:96:12)
   at C:\jcommerce\node_modules\mongodb\lib\bulk\unordered.js:470:9
   at handleCallback (C:\jcommerce\node_modules\mongodb\lib\utils.js:96:12)
   at resultHandler (C:\jcommerce\node_modules\mongodb\lib\bulk\unordered.js:417:5)
   at commandCallback (C:\jcommerce\node_modules\mongodb-core\lib\topologies\server.js:936:9)
   at Callbacks.emit (C:\jcommerce\node_modules\mongodb-core\lib\topologies\server.js:116:3)
   at null.messageHandler (C:\jcommerce\node_modules\mongodb-core\lib\topologies\server.js:282:23)
   at Socket.<anonymous> (C:\jcommerce\node_modules\mongodb-core\lib\connection\connection.js:273:22)
   at emitOne (events.js:90:13)
   at Socket.emit (events.js:182:7)
   at readableAddChunk (_stream_readable.js:153:18)
   at Socket.Readable.push (_stream_readable.js:111:10)
   at TCP.onread (net.js:529:20)
EJS


错误源于此行:

user.email = req.body.email;
这是因为
req.body.email
未定义的
,这意味着该电子邮件不是唯一的。您应该验证对
/signup
的请求是否与来自客户端的数据一起发送。

我只需要检查一下 现有语言!==空的

 if (existingUser !== null) 

您是否正在使用
express flash
节点模块?或者其他一些flash库?我正在使用express flash node模块。
req.flash('errors')
是否包含您认为应该包含在GET/signup端点中的内容?您能否在
res.render('accounts/signup')
之前
req.flash('errors')
?您是否在应用程序中使用
body parser
模块?你能发布你的
app.js
的代码吗?上传的server.js又称app.js,是的,我使用body parserI。我已经签入了邮递员,数据正在发送,问题只是显示错误。所以我认为这行代码很好,因为当我提交它并将数据发布到mongodb时,唯一的错误就是显示我自己的错误。非mongodb错误
var express = require('express');
var morgan = require('morgan');
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
var ejs = require('ejs');
var engine = require('ejs-mate');
var session = require('express-session');
var cookieParser = require('cookie-parser'); // parses cookies and put it on the request object in the middleware
var flash = require('express-flash');

var User = require('./models/user');

// App is reffering to express objects, bc we want to use express objects
var app = express();

mongoose.connect('mongodbconnectionstring', function (err) {
    if (err) {
        console.log(err);
    }
    else
    {
        console.log("Connected to the database");
    }
});

//Middleware - logs requests in cmd
app.use(express.static(__dirname + '/public'));
app.use(morgan('dev'));
app.use(bodyParser.json()); // Express can parse data format
app.use(bodyParser.urlencoded({extended: true}));
app.use(cookieParser());
app.use(session({
    resave: true,
    saveUninitialized: true,
    secret: "James@@@@#"
}));
app.use(flash());
app.engine('ejs', engine)
app.set('view engine', 'ejs');


// body parser takes the body of request and parses it -> Format encoded or raw data

var mainRoutes = require('./routes/main');
var userRoutes = require('./routes/user');
app.use(mainRoutes); // Express is using main routes
app.use(userRoutes);




// Listen on port number 3000 ,
app.listen(3000, function (err) {
  if (err) {
    throw err;
  }
  console.log("Server is Running on port 3000");
});
user.email = req.body.email;
 if (existingUser !== null)