错误:无法调用user.find()。尚未设置find方法。 PersistedModel尚未正确附加到DataSource! user.js位于server / models / user.js
中module.exports = function(User) {
User.find({where: {id:'3'}}, function(err,data) {
console.log(err);
console.log(data);
});
};
答案 0 :(得分:2)
您当前的model-config.json文件包含以下行:
"user": { "dataSource": "db" }
在用户中创建U大写,因为这是创建一个小写字母的新模型用户,我认为你还没有创建像user.js和user.json这样的模型文件。看起来您想要扩展内置的User模型,在这种情况下,您可以使用此小写用户模型,但将模型定义保留在model-config.js中,并在User.json文件中使用User作为基础。检查Docs是否有明确的解释
答案 1 :(得分:0)
这与具有小写“u”的“用户”无关。在StrongLoop文档之后,看起来您已生成模型但未将其链接到数据源。
在文档中,它建议您创建模型,然后更改数据源。生成模型时,可供您设置的存储将只是“db”,这是一个内存中的提供者。
要让您的API路径正常工作,请先使用以下方法生成模型
slc loopback:model
生成模型后,运行:
slc loopback:datasource
然后会提示您填写有关数据源的一些选项。以下是使用MongoDB的示例(注意,在':'之后没有数据,按Enter键以使用默认值):
? Enter the data-source name: name_i_want_to_use_for_this
? Select the connector for name_i_want_to_use_for_this: MongoDB (supported by StrongLoop)
Connector-specific configuration:
? Connection String url to override other settings (eg: mongodb://username:password@hostname:port/database):
? host: localhost
? port:
? user:
? password:
? database: mydbname
? Install loopback-connector-mongodb@^1.4 Yes
然后,这将为您提供名为name_i_want_to_use_for_this
的连接提供程序。现在进入/server/model-config.json
,然后向下滚动到您的模型名称,您将看到:
"name_of_my_model": {
"dataSource": "db",
"public": true
}
将其更改为:
"name_of_my_model": {
"dataSource": "name_i_want_to_use_for_this",
"public": true
}
现在您已完成,请返回您的strongloop项目目录并运行node .
,然后浏览到http://localhost:3000/explorer
。转到您要测试的方法,然后再次在资源管理器中对其进行测试,现在应该将数据插入到模型中。
要测试此功能,请使用资源管理器创建新记录,然后使用资源管理器查询其ID。