Jef*_*wrs 1 mongoose mongodb node.js express
这是我第一次使用mongoose运行节点.我正在阅读这本骨干书中的一些教程,我在本章中使用express,mongoose创建一个restful api,我正在遵循代码,我甚至已经复制和粘贴但它仍然无法正常工作.这是代码:
http://addyosmani.github.io/backbone-fundamentals/#creating-the-back-end
// Module dependencies.
var application_root = __dirname,
express = require( 'express' ), //Web framework
path = require( 'path' ), //Utilities for dealing with file paths
mongoose = require( 'mongoose' ); //MongoDB integration
//Create server
var app = express();
// Configure server
app.configure( function() {
//parses request body and populates request.body
app.use( express.bodyParser() );
//checks request.body for HTTP method overrides
app.use( express.methodOverride() );
//perform route lookup based on url and HTTP method
app.use( app.router );
//Where to serve static content
app.use( express.static( path.join( application_root, 'site') ) );
//Show all errors in development
app.use( express.errorHandler({ dumpExceptions: true, showStack: true }));
});
//Start server
var port = 4711;
app.listen( port, function() {
console.log( 'Express server listening on port %d in %s mode', port, app.settings.env );
});
// Routes
app.get( '/api', function( request, response ) {
response.send( 'Library API is running' );
});
//Connect to database
mongoose.connect( 'mongodb://localhost/library_database');
//Schemas
var Book = new mongoose.Schema({
title: String,
author: String,
releaseDate: Date
});
//Models
var BookModel = mongoose.model( 'Book', Book );
Run Code Online (Sandbox Code Playgroud)
我一直在寻找堆栈溢出和其他网站试图解决问题,但我发现似乎没有任何东西允许我连接到mongodb.
第一个错误是:
events.js:72
throw er; // Unhandled 'error' event
^
Error: failed to connect to [localhost:27017]
at null.<anonymous> (/Users/jeff/Sites/backbone-ex2/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:536:74)
at EventEmitter.emit (events.js:106:17)
at null.<anonymous> (/Users/jeff/Sites/backbone-ex2/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:140:15)
at EventEmitter.emit (events.js:98:17)
at Socket.<anonymous> (/Users/jeff/Sites/backbone-ex2/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection.js:478:10)
at Socket.EventEmitter.emit (events.js:95:17)
at net.js:411:14
at process._tickCallback (node.js:415:13)
Run Code Online (Sandbox Code Playgroud)
这一变化似乎解决了这个问题:
mongoose.connect( 'mongodb://localhost/library_database', function(err) { if (err) console.log(err); } );
Run Code Online (Sandbox Code Playgroud)
在那之后表达工作,但mongodb无法连接:
Express server listening on port 4711 in development mode
[Error: failed to connect to [localhost:27017]]
Run Code Online (Sandbox Code Playgroud)
我尝试改为:
mongoose = require( 'mongoose' ).Mongoose;
Run Code Online (Sandbox Code Playgroud)
我也尝试在cli中运行mongod,在cli中有一些选项,但这似乎只是打开了帮助页面.我完全陷入困境......任何帮助都会非常感激.提前致谢.
Pet*_*ons 15
您需要实际成功运行mongod并监听连接.只需键入mongod
没有选项,点击ENTER,然后让它运行.然后在另一个终端启动您的快递应用程序.请注意,这mongod
是mongodb服务器守护程序,mongo
而是命令行客户端,您可以在其中运行交互式REPL并发出数据库命令.
归档时间: |
|
查看次数: |
14627 次 |
最近记录: |