猫鼬混合模式不起作用

Posted

技术标签:

【中文标题】猫鼬混合模式不起作用【英文标题】:Mongoose Mixed Schema not working 【发布时间】:2015-05-09 19:37:53 【问题描述】:

我正在尝试在 ExpressJs 中设置混合模式我尝试使用 mongoose.Schema.Types.Mixed 没有工作并尝试显式,如下所示,但不幸的是它失败并出现相同的错误:

“C:\Program Files (x86)\JetBrains\WebStorm 9.0.3\bin\runnerw.exe” "C:\Program Files (x86)\nodejs\node.exe" app.js

c:\Users\User\Desktop\nodekid\node_modules\node-restful\lib\model.js:247 app.getDetail = app.get; ^ 类型错误:无法读取未定义的属性“获取” 在 Function.Model.register (c:\Users\User\Desktop\nodekid\node_modules\node-restful\lib\model.js:247:22) 在对象。 (c:\Users\User\Desktop\nodekid\routes\api.js:10:8) 在 Module._compile (module.js:456:26) 在 Object.Module._extensions..js (module.js:474:10) 在 Module.load (module.js:356:32) 在 Function.Module._load (module.js:312:12) 在 Module.require (module.js:364:17) 在需要 (module.js:380:17) 在对象。 (c:\Users\User\Desktop\nodekid\app.js:18:17) 在 Module._compile (module.js:456:26)

进程以退出代码 8 结束

/**
 * Created by User on 3/8/2015.
 */
var  restful = require("node-restful");

var mongoose = restful.mongoose;

var storeSchema = new  mongoose.Schema(
   name: String,
   products: [new mongoose.Schema(
      name : String,
      description : String
   )]

);
module.exports = restful.model("store", storeSchema);


/**
 * Created by User on 3/8/2015.
 */
var express = require("express");

var router = express().Router;

var stores = require ("../models/store");
stores.methods(["get","post","put","delete"]);
stores.register(router,"stores");

module.exports = router;

新错误:

c:\Users\User\Desktop\nodekid\node_modules\node-restful\lib\model.js:228 app[key](prefix + '/:id([0-9a-fA-F]0,24$)?', handlerlist); ^ 类型错误:对象函数 createApplication() var app = function(req, res, next) app.handle(req, res, next); ;

mixin(app, EventEmitter.prototype, false);混入(应用程序,原型, 假);

app.request = proto: req, app: app ; app.response = proto: res, app: app ;应用程序.init();返回应用程序;没有方法'get' 在 Function.Model.registerRoutes (c:\Users\User\Desktop\nodekid\node_modules\node-restful\lib\model.js:228:17) 在 Function.Model.register (c:\Users\User\Desktop\nodekid\node_modules\node-restful\lib\model.js:248:8) 在对象。 (c:\Users\User\Desktop\nodekid\routes\api.js:10:8) 在 Module._compile (module.js:456:26) 在 Object.Module._extensions..js (module.js:474:10) 在 Module.load (module.js:356:32) 在 Function.Module._load (module.js:312:12) 在 Module.require (module.js:364:17) 在需要 (module.js:380:17) 在对象。 (c:\Users\User\Desktop\nodekid\app.js:18:17)

【问题讨论】:

错误来自api.js 第10行,你能发布你的那部分代码吗? /** * 由用户于 2015 年 3 月 8 日创建。 */ var express = require("express"); var router = express().Router; var stores = require ("../models/store"); store.methods(["get","post","put","delete"]);商店。注册(路由器,“商店”); module.exports = 路由器; @victorkohl 检查以上 【参考方案1】:

错误出现在 api.js 中设置路由:

var router = express().Router;

只需更改:

var router = express.Router();

【讨论】:

以上是关于猫鼬混合模式不起作用的主要内容,如果未能解决你的问题,请参考以下文章

猫鼬 findByIdAndUpdate 不起作用。 new: true 包括

猫鼬 TTL partialFilterExpression 不起作用?

猫鼬 TTL partialFilterExpression 不起作用?

猫鼬独特:真的不起作用[重复]

猫鼬填充不起作用

猫鼬 findByIdAndUpdate 不起作用