无法使用mongoose和express创建新目录

时间:2015-08-06 00:58:20

标签: javascript node.js mongodb express mongoose

喜欢标题。 我正在尝试创建一个应用程序,当我输入某些信息时,它会使用mongoose _id创建一个链接。和表达的app.get我没有得到的是能够加入该目​​录我必须重新加载整个服务器,这对于用户和我的缘故我不想做。

var mongoose = require("mongoose");
var express = require("express");
var app = express();
var http = require("http").Server(app);
var io = require("socket.io")(http);
var router = express.Router();
app.get("/", function (req, res) {
    var ip = req.connection.remoteAddress;
    res.sendFile(__dirname + "/index.html");
});
mongoose.connect("mongodb://localhost:27017/NEW_DB1");
console.log("Connection to database has been established");
var collectedData = new mongoose.Schema({
    ipAddress: String,
    name: {
        type: String,
        unique: false
    }
});
var collectionOfData = mongoose.model("dataType", collectedData);
io.on("connection", function (socket) {
    socket.on("name", function (e) {

        var ip = socket.request.socket.remoteAddress;
        var dataBase = mongoose.connection;
        var Maindata = new collectionOfData({
            ipAddress: ip,
            name: e
        });
        Maindata.save(function (err, Maindata) {
            if (err) {
                return console.error(err);
            } else {
                console.dir(Maindata);

            }
        });

    });
});
app.get("/mix", function (req, res) {
    collectionOfData.find(function (err, data) {
        res.send(data);
    });
});
collectionOfData.find(function (err, data) {
    data.forEach(function (uniqueURL) {
        app.get("/" + uniqueURL._id, function (req, res) {
            res.send("<h1>Hello " + uniqueURL.ipAddress + "</h1><p>" + uniqueURL.name + "</p>");

        });
    });
});
http.listen(10203, function () {
    console.log("Server is up");
});

所以我要做的就是这样做,所以我不必重新加载整个服务器,而且我可以在加载完成后加入创建的目录。

我想我应该举一个简单的例子:

localhost:10203/55c2b2f39e09aeed245f2996

是用户刚创建长

的链接
55c2b2f39e09aeed245f2996

是_id的效果,但是当用户尝试连接到该站点时,它将无法工作,直到我重新加载服务器,显然我想避免这样哈哈。 我有一个index.html文件,但所有的文件都是一个socket.emit,它将“name”发送到服务器

1 个答案:

答案 0 :(得分:0)

app.get("/", function (req, res) {
    var ip = req.connection.remoteAddress;
    res.sendFile(__dirname + "/index.html");
});    

app.get('/:uniqueURL', function(req, res){
    var id = req.params.uniqueURL;
    res.send("Your requested id : " + id);
})

尝试使用上面的内容。 您正在collectionData.find中创建修复获取路径。那就是问题所在。因此,每次必须通过重新启动来重新加载服务器。