Node.js 通过URL发布到mongodb
我试图通过浏览器的URL将数据发布到mongo DB。我只使用expressJS就可以让它工作,但我很难让它与mongodb一起工作。我对这一点还很陌生,所以我希望我只是缺少了一个简单的组件,至少我在正确的轨道上 当我在url中输入“”或“”时,我希望在网页上看到“4SDFA3”。现在我刚刚收到一个网页,上面有这样一条消息:“看起来您正试图通过本机驱动程序端口上的HTTP访问MongoDB。” 这是我的server.js文件:Node.js 通过URL发布到mongodb,node.js,mongodb,express,Node.js,Mongodb,Express,我试图通过浏览器的URL将数据发布到mongo DB。我只使用expressJS就可以让它工作,但我很难让它与mongodb一起工作。我对这一点还很陌生,所以我希望我只是缺少了一个简单的组件,至少我在正确的轨道上 当我在url中输入“”或“”时,我希望在网页上看到“4SDFA3”。现在我刚刚收到一个网页,上面有这样一条消息:“看起来您正试图通过本机驱动程序端口上的HTTP访问MongoDB。” 这是我的server.js文件: // packages var express = require(
// packages
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var app = express();
var bodyParser = require('body-parser');
//db stuff
var mongo = require('mongodb');
var monk = require('monk');
var db = monk('localhost:27017/nodetest5');
app.use(bodyParser.json()); // support json encoded bodies
app.use(bodyParser.urlencoded({ extended: true })); // support encoded
//make accessible mongo db accessible to router
app.use(function(req, res, next){
req.db = db;
next();
})
// routes
app.get('/api/users', function(req, res) {
//get values from URL
var id = req.param('id');
var token = req.param('token');
res.send(user_id + ' ' + token + ' ');
});
// POST to localhost
// parameters sent with
app.post('/api/users', function(req, res) {
//internal DB value
var db = req.db;
//values from URL
var user_id = req.body.id;
var token = req.body.token;
//set collection
var collection = db.get('usercollection');
//Submit to DB
collection.insert({
"id" : id,
"token" : token
}, function (err, doc){
if (err) {
res.send("Error encountered when trying to add entry to database.");
}
else {
res.send(user_id + ' ' + token + ' ');
}
});
});
谢谢大家! 可以通过端口号
28017
访问MongoDB的HTTP接口。您需要为mongod
提供--rest
选项:
`$ mongod --rest`
你可以在网上阅读更多
在使用HTTP接口时,应该谨慎。从MongoDB文档中:
警告确保在生产环境中禁用HTTP状态接口、REST API和JSON API,以防止潜在的数据暴露和攻击者的漏洞
谢谢你的回复,虽然我不确定这将如何帮助我通过URL获得帖子。我尝试使用
mongod--rest启动mongod,但除了能够连接到http://localhost:28017/
您不能通过URL发出POST
请求。如果我要用上面我想用的monk之类的东西呢?还是根本没有解决办法?