我只是按书学习node.js。
我遵循书中的说明并收到错误。 我花了几个小时才找到问题,但没有成功。 希望得到您的帮助和理解。
exports.connectDB = function(){
var SQNote;
var sequlz;
if(SQNote) return SQNote.sync();
return new Promise((resolve, reject) => {
fs.readFile(process.env.SEQUELIZE_CONNECT, 'utf-8', (err, data) => {
if(err){
reject(err);
}
else{
resolve(data);
}
});
})
.then(yamltext => {
return jsyaml.safeLoad(yamltext, 'utf-8');
})
.then(params => {
sequlz = new Sequelize(params.dbname,
params.username,
params.password,
params.params);
SQNote = sequlz.define('Note', {
notekey: {
type: Sequelize.STRING,
primaryKey: true,
unique: true
},
title: Sequelize.STRING,
body: Sequelize.STRING
});
return SQNote.sync;
});};
此处出现错误:
exports.keylist = function(){
return exports.connectDB()
.then(SQNote => {
return SQNote.findAll({ attributes: [ 'notekey' ] })
.then(notes => {
return notes.map(note => notekey);
});
});};
SQNote.findAll不是函数
TypeError:SQNote.findAll不是函数 at exports.connectDB.then.SQNote(/home/vegas/NodeJS_course/notes/models/notes-sequelize.js:119:23) 在匿名
答案 0 :(得分:1)
再过几个小时后,我发现了自己的错误。 应该是:
return SQNote.sync();
相反:
return SQNote.sync;