ReferenceError:我的var没有定义
ReferenceError: my var is not defined
我正在开发一个测试NodeJS的应用程序。一个登录和注册系统。所以我测试注册的用户数据是否还没有在数据库中。
但是它在电子邮件上不起作用。我有这个错误:
ReferenceError: mailDispo is not defined
at /var/www/app.js:72:12
at Layer.handle [as handle_request] (/var/www/node_modules/express/lib/router/layer.js:82:5)
at next (/var/www/node_modules/express/lib/router/route.js:110:13)
at Route.dispatch (/var/www/node_modules/express/lib/router/route.js:91:3)
at Layer.handle [as handle_request] (/var/www/node_modules/express/lib/router/layer.js:82:5)
at /var/www/node_modules/express/lib/router/index.js:267:22
at Function.proto.process_params (/var/www/node_modules/express/lib/router/index.js:321:12)
at next (/var/www/node_modules/express/lib/router/index.js:261:10)
at /var/www/node_modules/body-parser/lib/read.js:107:5
at IncomingMessage.onEnd (/var/www/node_modules/body-parser/node_modules/raw-body/index.js:136:7)
但是如果我重新加载页面,虽然在我看来错误是什么电子邮件已经在使用!一个主意?
哎呀,我忘了代码了:
var express = require('express');
var body = require('body-parser');
var render = require('ejs');
var app = express();
var mysql = require('mysql');
var mySqlClient = mysql.createConnection({
host: "localhost",
user: "******",
password: "*******!",
database: "******"
});
app.use(body.json()); // to support JSON-encoded bodies
app.use(body.urlencoded({// to support URL-encoded bodies
extended: true
}));
app.get('/', function (request, response) {
var selectQuery = 'SELECT * FROM user';
var sqlQuery = mySqlClient.query(selectQuery);
sqlQuery.on("result", function (row) {
console.log('pseudo: ' + row.pseudo);
console.log('mail: ' + row.mail);
});
sqlQuery.on("end", function () {
mySqlClient.end();
});
sqlQuery.on("error", function (error) {
console.log(error);
});
response.sendfile('html/index.html');
});
app.get('/signup', function (request, response) {
response.render('signup.ejs', {
titre: 'Inscription sur War.io'
});
});
//Inscription
app.post('/signup', function (request, response) {
var pseudo = request.body.pseudo;
var mail = request.body.mail;
var password = request.body.password;
var checkMail = "select id from user where mail=" + mysql.escape(mail);
sqlQueryMail = mySqlClient.query(checkMail);
sqlQueryMail.on("result", function (row) {
if (row.id) {
mailDispo = 0;
errorMail = "Adresse email deja use";
} else {
mailDispo = 1;
}
});
var checkUser = "select id from user where pseudo=" + mysql.escape(pseudo);
sqlQueryUser = mySqlClient.query(checkUser);
sqlQueryUser.on("result", function (row) {
if (row.id) {
pseudoDispo = 0;
errorPseudo = "Pseudo deja use";
} else {
pseudoDispo = 1;
}
});
if(mailDispo == 1 && pseudoDispo == 1){
mySqlClient.query('INSERT INTO user SET ?', {
pseudo: pseudo,
mail: mail,
pass: password
}, function (err, result) {
if (err){
throw err;
} else {
console.log(result.insertId);
}
});
} else {
reponse.render('signup.ejs', {
'titre': 'War.io signup',
'errorPseudo': errorPseudo,
'errorMail': errorMail
});
}
});
app.listen(8080);
如果我理解正确的话,您需要在函数的顶层定义变量。这将它设置为函数内部的作用域变量,而不是全局对象上的属性,这是在if循环(不带var)中定义它所做的。
app.post('/signup', function (request, response) {
var mailDispo;
var pseudo = request.body.pseudo;
var mail = request.body.mail;
var password = request.body.password;
var checkMail = "select id from user where mail=" + mysql.escape(mail);
sqlQueryMail = mySqlClient.query(checkMail);
sqlQueryMail.on("result", function (row) {
if (row.id) {
mailDispo = 0;
errorMail = "Adresse email deja use";
} else {
mailDispo = 1;
}
});
相关文章:
- 控制台返回var不是't定义,但它是
- 为什么JavaScript抛出'未捕获的ReferenceError:var未定义'定义var时
- Google Script var获取未定义的值
- 在 Javascript 中将 var 转换为自定义类
- 防止自定义文本出现在页面上的所有高图表上,←使用 {events:{load:function(){var.
- 不能在javascript中定义两个var
- 断言var集通过<输入ng模型>不是未定义的
- Javascript requestData未定义,尽管为JSON设置了var
- jQuery jslint-var是在定义之前使用的
- 使用 Javascript/JQuery 并在页面加载时获取未定义的 var
- 在 Select 脚本中调用 Knockout 计算 Var 时,如何定义它
- winJS 从函数未定义返回 var
- 为什么我需要将“var value = val;”更改为“this.value = val;”,这样我就不会收到“未定义
- 我们是否可以将定义为字符串的 var 传递给需要字符串的函数的参数
- JavaScript,jquery中未定义的VAR的问题.如何
- 为什么未定义var检查器
- 如何在数组中定义var
- 在Extjs源代码中定义var Ext
- 如何定义$var仅当parent ('.class').attr('id')存在
- 我在for循环中没有定义var