Express App中的猫鼬模型(按要求找不到)

Jie*_*eng 3 mocha.js mongoose node.js express

我正在尝试为学习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)
Run Code Online (Sandbox Code Playgroud)

我有一个Todos班级供其他班级使用。(不确定仅使用Todo模型是否更好?)

# Todos.coffee

Todo = require "Todo"

class Todos 

    byId: (id, callback) ->
        Todo.findOne { _id: id }, callback
Run Code Online (Sandbox Code Playgroud)

然后在我的Mocha /应该进行单元测试中...

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()
Run Code Online (Sandbox Code Playgroud)

但是我越来越...

$ 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)
Run Code Online (Sandbox Code Playgroud)

我做错什么了?

Joh*_*yHK 5

Todos.coffee,您requireTodo需求,包括使得它寻找一个本地文件,而不是安装的节点模块的相对路径。

Todo = require "./Todo"
Run Code Online (Sandbox Code Playgroud)