【发布时间】:2014-11-26 01:08:40
【问题描述】:
TL;DR:以下是我为达到错误所遵循的步骤的详细说明。要查找基本问题,请跳到最底部。
我正在关注这本书 addyosmani - backbone-fundamentals 创建一个简单的以节点服务器和 mongodb 作为后端的主干.js 应用程序。
按照指示,我从nodejs.org 安装了最新版本的 Node.js,从 www.mongodb.org 安装了 mongodb,并按照 instructions 运行了 mongodb。
现在按照教程,我创建了以下内容:
{ //package.json
"name": "backbone-library",
"version": "0.0.1",
"description": "A simple library application using Backbone",
"dependencies": {
"express": "~3.1.0",
"path": "~0.4.9",
"mongoose": "~3.5.5"
}
}
在我的项目的根目录并执行npm install,由于某种原因它没有成功。
我进一步冒险安装了expressfollowing these steps:
npm init
npm install express --save
npm install express
这创建了以下 package.json,我认为它与教程中提到的基本相同:
{
"name": "Backbone-Library",
"version": "0.0.1",
"description": "A simple library application using Backbone",
"main": "index.html",
"dependencies": {
"express": "^3.18.3",
"mongoose": "^3.5.16",
"path": "^0.4.9"
},
"devDependencies": {},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
这创建了与教程中提到的完全相同的文件夹结构:
node_modules
|_ .bin
|_ express
|_ mongoose
|_ path
然后我成功地执行了npm install,没有任何错误。
现在,一旦我 create a simple server.js file 并尝试使用命令 node server.js 执行它,我会收到以下错误:
module.js:340
throw err;
^
Error: Cannot find module 'mongodb'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (D:\<-- path to project ->\Backbone-Library\node_modules\mongoose\lib\utils.js:5:16)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
(如果需要,我可以提供完整的跟踪信息)。
我发现这些 StackOverflow posts 涉及相同的错误,答案说我必须使用 npm 再次安装 mongodb。
我很困惑,因为这本书没有提到任何关于这一步的内容。
我对这里提到的所有内容都很陌生,除了骨干网 - node.js、npm、mongodb 等,所以我可能会遗漏一些基本概念。
我想知道是否可以使用我之前安装的现有数据库,而不是通过npm再次下载和安装。
如果不是,为什么还要用npm重新安装,原来安装和npm安装有什么区别..?
【问题讨论】:
标签: javascript node.js mongodb backbone.js