Mic*_*ael 23 mongodb node.js express
我打开终端并输入以下命令
sudo mongod
Run Code Online (Sandbox Code Playgroud)
然后输出
[initandlisten] waiting for connections on port 27017
Run Code Online (Sandbox Code Playgroud)
我打开另一个终端然后进入
sudo mongo
Run Code Online (Sandbox Code Playgroud)
打开mongo shell并提示mongo命令,但是当我转到localhost/27017时,我收到以下消息:
It looks like you are trying to access MongoDB over HTTP on the native driver port.
Run Code Online (Sandbox Code Playgroud)
我使用express创建了一个简单的nodejs应用程序,当我POST
数据时,似乎mongodb被挂起了.这是我在终端中收到的消息,我在其中启动了快速应用程序,页面从不发布数据.所以我认为问题在于mongo,但我无法弄明白.
POST /info 200 120002ms
Run Code Online (Sandbox Code Playgroud)
这是我的快递代码
var Info = require('../models/info');
var path = require('path');
var fs = require('fs');
var join = path.join;
exports.form = function(req,res){
res.render('info', {
myName: 'Michael'
});
};
exports.submit = function(){
console.log('Within exports.submit 1');
return function(req,res,next){
console.log('Within exports.submit 2 ');
var firstName = req.name.first;
var lastName = req.name.last;
Info.create({
firstName: firstName,
lastName: lastName
},function(err){
if(err) return next(err);
res.redirect('/')
});
}
};
Run Code Online (Sandbox Code Playgroud)
模型
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/info');
var schema = new mongoose.Schema({
firstName: String,
lastName: String
});
module.exports = mongoose.model('info',schema);
Run Code Online (Sandbox Code Playgroud)
app.js
...
app.get('/info',info.form);
app.post('/info',info.submit);
...
Run Code Online (Sandbox Code Playgroud)
Dav*_*vid 63
在Mongo 3.6之前:
你可以用mongodb开始
mongod --httpinterface
Run Code Online (Sandbox Code Playgroud)
并访问它
http://localhost:28017
Run Code Online (Sandbox Code Playgroud)
从版本2.6开始:MongoDB默认禁用HTTP接口.
更新
HTTP接口和REST API
MongoDB 3.6删除了已弃用的HTTP接口和REST API到MongoDB.
Wir*_*rie 10
默认情况下,MongoDB在28017有一个简单的基于Web的管理端口.
默认端口27017没有HTTP访问(这是错误消息试图建议的).默认端口用于本机驱动程序访问,而不是HTTP流量.
要访问MongoDB,您需要使用类似于NodeJS的MongoDB本机驱动程序的驱动程序.您不会直接"POST"到MongoDB(但您可以使用使用本机驱动程序的express创建RESTful API).相反,您将使用一个包装库来方便访问MongoDB.您也可以考虑使用Mongoose(使用本机驱动程序),它在NodeJS中为MongoDB添加类似ORM的模型.
如果您无法访问Web界面,则可能会被禁用.通常情况下,除非您检查日志等,否则我不希望您需要它进行开发.
与前面提到的评论一样,消息"看起来您正试图通过本机驱动程序端口上的HTTP访问MongoDB." 这是一个警告,因为你误解了这一行:mongoose.connect('mongodb:// localhost/info'); 并浏览此网址: http:// localhost:28017 /
但是,如果您想查看mongo的管理网页,可以使用以下命令执行此操作:
mongod --rest --httpinterface
浏览此网址: http:// localhost:28017 /
参数httpinterface激活管理网页,参数休息所需的激活页面所需的其余服务
归档时间: |
|
查看次数: |
76881 次 |
最近记录: |