猫鼬混合模式不起作用
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 不起作用?