[英]TypeError: Undefined is not a function - Sails.js
所以我現在正在通過一些教程學習Sails.js
,現在我已經多次遇到過這個問題。
我試着尋找解決方案,但它們似乎都沒有用。
module.exports = {
signup: function(req, res) {
var username = req.param("username");
var password = req.param("password");
Users.findByUsername(username).done(function(err, usr){
if (err) {
res.send(500, { error: "DB Error" });
} else if (usr) {
res.send(400, {error: "Username already Taken"});
} else {
var hasher = require("password-hash");
password = hasher.generate(password);
Users.create({username: username, password: password}).done(function(error, user) {
if (error) {
res.send(500, {error: "DB Error"});
} else {
req.session.user = user;
res.send(user);
}
});
}
});
}
}
問題似乎就在這條線上,它說:
undefined不是一個函數。
Users.findByUsername(username).done(function(err, usr)
在我看來,問題出在.done
上,因為當我嘗試這樣做時:
Users.findByUsername(username, function(err, usr)
有用。
這是我在模型下的Users.js
module.exports = {
attributes: {
username: 'STRING',
password: 'STRING'
}
};
有關如何解決此問題的任何想法?
同樣在chrome控制台中,狀態代碼為:
500內部服務器錯誤
哪里可能是問題?
可能是您正在關注為SailsJS的早期版本編寫的一些教程。 在以前的版本中有一個名為done
的函數,在較新的版本中由exec
替換。 嘗試用exec
替換done
。 然后代碼就像,
module.exports = {
signup: function(req, res) {
var username = req.param("username");
var password = req.param("password");
Users.findByUsername(username).exec(function(err, usr){
if (err) {
res.send(500, { error: "DB Error" });
} else if (usr) {
res.send(400, {error: "Username already Taken"});
} else {
var hasher = require("password-hash");
password = hasher.generate(password);
Users.create({username: username, password: password}).done(function(error, user) {
if (error) {
res.send(500, {error: "DB Error"});
} else {
req.session.user = user;
res.send(user);
}
});
}
});
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.