Node.js Express应用程序中的Mongoose模型(未通过require找到)

Node.js Express应用程序中的Mongoose模型(未通过require找到),node.js,express,mongoose,mocha.js,Node.js,Express,Mongoose,Mocha.js,我试图为学习ExpressJS应用程序定义一个简单的Mongoose模型 # Todo.coffee mongoose = require "mongoose" Schema = mongoose.Schema todoSchema = new Schema title: String desc: String dueOn: Date completedOn: Date Todo = new mongoose.model("Todo", todoSchem

我试图为学习ExpressJS应用程序定义一个简单的Mongoose模型

# Todo.coffee

mongoose = require "mongoose"
Schema = mongoose.Schema

todoSchema = new Schema 
    title: String
    desc: String
    dueOn: Date
    completedOn: Date

Todo = new mongoose.model("Todo", todoSchema)
我有一个
Todos
类,是供其他类使用的。(不确定只使用
Todo
model tho是否更好?)

然后在我的摩卡/应该单元测试中

require "should"
Todos = require "../../../app/todos/Todos.coffee"
Todo = require "../../../app/todos/Todo.coffee"

describe "Todos", ->
    describe "byId", ->
        it "should return Todo with given ID", (done) ->
            Todos.byId 1, (err, todo) ->
                todo.should.be.an.instanceOf(Todo)
                done()
但是我得到了

$ mocha --compilers coffee:coffee-script tests/backend/todos/TodosTests.coffee 

module.js:340
    throw err;
          ^
Error: Cannot find module 'Todo'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:362:17)
    at require (module.js:378:17)
    at Object.<anonymous> (/labs/Projects/Tickle/app/todos/Todos.coffee:4:10)
    at Object.<anonymous> (/labs/Projects/Tickle/app/todos/Todos.coffee:20:4)
    at Module._compile (module.js:449:26)
    at Object.require.extensions..coffee (/usr/lib/node_modules/coffee-script/lib/coffee-script/coffee-script.js:22:21)
$mocha——编译器咖啡:咖啡脚本测试/backend/todos/TodosTests.coffee
module.js:340
犯错误;
^
错误:找不到模块“Todo”
在Function.Module.\u解析文件名(Module.js:338:15)
在Function.Module.\u加载(Module.js:280:25)
at Module.require(Module.js:362:17)
根据需要(module.js:378:17)
反对。(/labs/Projects/Tickle/app/todos/todos.coffee:4:10)
反对。(/labs/Projects/Tickle/app/todos/todos.coffee:20:4)
在模块处编译(Module.js:449:26)
at Object.require.extensions..coffee(/usr/lib/node_modules/coffee script/lib/coffee script/coffee script.js:22:21)

我做错了什么

Todo.coffee
中,
Todo
require
需要包含相对路径,以便将其作为本地文件而不是已安装的节点模块进行查找

Todo = require "./Todo"

现在是另一个问题。。。如果(!this.modelSchemas[name]){TypeError:无法读取未定义的源的属性“Todo”在这一行:
Todo=new mongoose.model(“Todo”,todoSchema),我将得到
/labs/Projects/Tickle/node\u modules/mongoose/lib/index.js:180
您不应该调用
new
。请尝试将其更改为:
Todo=mongoose.model(“Todo”,todoSchema)
Todo = require "./Todo"