Javascript 快速,猫鼬从1个应用程序传递参数。转到另一个应用程序
我的问题是,在运行第二个应用程序之前,我无法完全弄清楚如何获取“name”参数。。第一个(app.get/)允许我在集合之间进行选择,我将“name”参数传递给第二个app get,然后我可以在第二个app.get中使用req.params.name获取该参数 问题是我需要在第二个app.get之前使用param,因为我需要定义一个模式并“编译”一个模型,这只能执行一次。当我单击一次就可以工作,但当我再次单击时,会出现“cannot owerwrite model,ready compiled”(无法编写模型,已编译)错误。每次加载第二个app.get(我知道不是很好),我都会打开一个新的连接,从而绕过了这个问题 因此,如果有人知道如何获取“name”参数(在实际的第二个app.get启动之前,我作为req.param传递给第二个app.get的东西,我会很感激) 我的代码:(2天前开始学习node,与express和mongoose并驾齐驱,更不用说javascript sp对我来说很容易:p)Javascript 快速,猫鼬从1个应用程序传递参数。转到另一个应用程序,javascript,express,Javascript,Express,我的问题是,在运行第二个应用程序之前,我无法完全弄清楚如何获取“name”参数。。第一个(app.get/)允许我在集合之间进行选择,我将“name”参数传递给第二个app get,然后我可以在第二个app.get中使用req.params.name获取该参数 问题是我需要在第二个app.get之前使用param,因为我需要定义一个模式并“编译”一个模型,这只能执行一次。当我单击一次就可以工作,但当我再次单击时,会出现“cannot owerwrite model,ready compiled”
为什么要在路由中定义模式?因为我需要名称param来定义模式,在我运行如上所述的路由之前,我无法获取该参数。(我从路由内部从req.params.name获得的name变量派生出myModel变量)创建一个可以命名的通用模型是否更有意义?
var express = require('express')
,routes = require('./routes')
,user = require('./routes/user')
,http = require('http')
,path = require('path')
,mongoose = require("mongoose");
var app = express();
// all environments
app.set('port', process.env.PORT || 3005);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
// development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
conn = mongoose.createConnection("mongodb://10.42.1.31/dominik");
app.get ("/", function(req, res) {
conn.db.collectionNames(function (err, docs) {
res.render("collections", {names:docs});
});
});
app.get("/collections/:name", function (req,res) {
conn = mongoose.createConnection("mongodb://10.42.1.31/dominik");
var collName = req.params.name;
collName = collName.charAt(0).toUpperCase()+collName.slice(1);
collName = collName.substring(0, collName.length-1);
var schema = new mongoose.Schema({});
var myModel= conn.model(collName, schema);
myModel.find({},function(err, docs) {
res.json("documents",docs);
});
});
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});