【发布时间】:2017-03-18 23:32:02
【问题描述】:
我正在尝试在this example 之后编写一个简单的check() 函数。该函数成功打印出“True!”但是当我执行console.log(submitModels.verifyOrganizationString(formInputs.organizationString)); 时,函数的返回值是undefined。如何让函数返回true 和false?
现在该函数只返回"Invalid organization string",即使字符串有效。
我认为这个结果与 pg-promise 库有关,但我不确定。
在文件submit.js中,我有:
function verifyOrganizationString(organizationString) {
db.one("select * from organizations where organization_string=$1", [organizationString])
.then(data => {
console.log("True!");
return true;
})
.catch(error => {
console.log("False!");
return false;
});
}
module.exports = {
verifyOrganizationString,
};
在另一个文件中,我有
const submitModels = require('../models/submit.js');
function proccessSubmission(req, res) {
var formInputs = req.body;
console.log(submitModels.verifyOrganizationString(formInputs.organizationString));
if (submitModels.verifyOrganizationString(formInputs.organizationString)) {
submitModels.insertIntoDatabase(formInputs);
res.redirect('/');
} else {
res.send("Invalid organization string");
}
}
【问题讨论】:
-
你需要明确你对 Promise 的概念,因为你正在非法地使用 Promise,这是一种反模式。记住一件事,从
.then或.catch中的任何一个返回的值只会被下一个链接的.then或.catch访问,这是因为返回的值实际上是一个承诺。
标签: javascript node.js pg-promise