Loopbackjs 向模型添加架构

Loopbackjs 向模型添加架构,loopbackjs,Loopbackjs,示例中的代码不起作用 var productSchema = { "name": { "type": "string", "required": true }, "price": "number" }; var Product = Model.extend('product', productSchema) ReferenceError: Model is not defined at Object. (/home/test/dev/common/models/product

示例中的代码不起作用

var productSchema = {
    "name": { "type": "string", "required": true },
    "price": "number"
};

var Product = Model.extend('product', productSchema)

ReferenceError: Model is not defined
at Object. (/home/test/dev/common/models/product.js:41:18)
at Module._compile (module.js:435:26)
at Object.Module._extensions..js (module.js:442:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:311:12)
at Module.require (module.js:366:17)
at require (module.js:385:17)
at /home/test/dev/node_modules/loopback-boot/lib/executor.js:219:20
at Array.forEach (native)
at defineModels (/home/test/dev/node_modules/loopback-boot/lib/executor.js:200:23)
Program node . exited with code 1
project.js

像这样

module.exports = function(Product) {

}

我应该把代码放在哪里?

您可以在project.js中要求环回,并使用它访问模型对象

var loopback = require('loopback');
module.exports = function(Product) {

    var productSchema = {
        "name": { "type": "string", "required": true },
        "price": "number"
    };

    var Product = loopback.Model.extend('product', productSchema);

    Product.observer('before save', function(context, next) {
        //check the context.req object for incoming object.
        //otherwise, search in context object.
        console.log(context.req);
        var reqObject = context.req;

        //get keys of productSchema
        var allowedFields = Object.keys(productSchema);

       //Iterate incoming object and delete extra fields
       //Using delete reqObject.extraField. if not matched to keys in allowedFields.

    });
}

现在,在问题解决之前,它将对您有效。

谢谢。它起作用了。但它不会像文档中所说的那样删除额外的属性。。“如果客户端试图保存具有额外属性(例如描述)的产品,则在应用程序将数据保存到模型中之前,这些属性将被删除。”是的,我也发现了这个问题。可能与连接器有关?无论如何,你可以试着在答案中找到答案。