Проблемът: уеб страницата работи само ако ръчно стартирам mongodb. В противен случай получавам грешка "Error failed to connect 127.0.0.1:27017". Въпреки това, аз вярвам, че създавам сървър, може би липсвам някаква стъпка.
Също така, не се колебайте да посочите по-добри начини да правите нещата или ако нещо е остаряло ...
Кодът:
var express = require("express"),
app = express(),
cons = require("consolidate"),
MongoClient = require("mongodb").MongoClient,
Server = require("mongodb").Server;
app.engine("html", cons.swig);
app.set("view engine", "html");
app.set("views", __dirname + "/views");
var mongoclient = new MongoClient(new Server("127.0.0.1", 27017));
var db = mongoclient.db("course");
app.get("/", function(req, res){
// Find one document in our collection
db.collection("hello_combined").findOne({}, function(err, doc) {
if(err) throw err;
res.render("hello", doc);
});
});
app.get("*", function(req, res){
res.send("Page Not Found", 404);
});
mongoclient.open(function(err, mongoclient) {
if(err) throw err;
app.listen(8080);
console.log("Express server started on port 8080");
});
Отговори:
2 за отговор № 1Ако наистина трябва да го стартирате "от nodejs", можете да стартирате mongodb, когато стартирате сървъра си node.js, като използвате модула child_process.
Добавете кода по-долу в кода на приложението си:
var child_process = require("child_process")
child_process.exec("start mongod", function (err, stdout, stderr) {
if (err) {
console.log(err);
return;
}
});