Express : 在 bcrypt.compare 之前使用 await 给出错误
Express : using await before bcrypt.compare gives error
我正在尝试使用 bcrypt 将用户密码与存储的密码进行比较。
但是 Express 给出错误是我在 bcrypt.compare
之前使用 await
这是代码:
app.post ('/users/login', (req, res) => {
const user = users.find(user=> user.name === req.body.user)
if (user == null) {
return res.status(400).send('Can Not find user');
} else {
try{
if ( await bcrypt.compare(req.body.password, user.password)) {
res.send("Success");
} else {
res.send("Incorrect PAssword");
}
} catch {
return res.status(500).send('Some Error has occurred');
}
}
});
我收到这个错误:
C:\Data\Ashish\projects\jwtAuthentication\app.js:32
if ( await bcrypt.compare(req.body.password, user.password)) {
^^^^^^
SyntaxError: Unexpected identifier
at Module._compile (internal/modules/cjs/loader.js:723:23)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
[nodemon] app crashed - waiting for file changes before starting...
请大家帮忙找错..
此致,
阿希什
你忘记给回调函数添加async了。
app.post ('/users/login', (req, res) => {
应该是:
app.post ('/users/login', async (req, res) => {
Await 仅适用于异步函数。
它不同于chrome控制台。在控制台中可以直接使用 await 关键字,但是在 node.js 的情况下,您需要指定要在其中使用 await 的父函数的异步性质。
更多参考,可以参考this link.
我正在尝试使用 bcrypt 将用户密码与存储的密码进行比较。 但是 Express 给出错误是我在 bcrypt.compare
之前使用 await这是代码:
app.post ('/users/login', (req, res) => {
const user = users.find(user=> user.name === req.body.user)
if (user == null) {
return res.status(400).send('Can Not find user');
} else {
try{
if ( await bcrypt.compare(req.body.password, user.password)) {
res.send("Success");
} else {
res.send("Incorrect PAssword");
}
} catch {
return res.status(500).send('Some Error has occurred');
}
}
});
我收到这个错误:
C:\Data\Ashish\projects\jwtAuthentication\app.js:32
if ( await bcrypt.compare(req.body.password, user.password)) {
^^^^^^
SyntaxError: Unexpected identifier
at Module._compile (internal/modules/cjs/loader.js:723:23)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
[nodemon] app crashed - waiting for file changes before starting...
请大家帮忙找错..
此致, 阿希什
你忘记给回调函数添加async了。
app.post ('/users/login', (req, res) => {
应该是:
app.post ('/users/login', async (req, res) => {
Await 仅适用于异步函数。
它不同于chrome控制台。在控制台中可以直接使用 await 关键字,但是在 node.js 的情况下,您需要指定要在其中使用 await 的父函数的异步性质。
更多参考,可以参考this link.