【发布时间】:2018-11-27 05:01:16
【问题描述】:
我的 MongoDB 中有多个数据库和多个集合。下面的脚本可以作为我的 Restful API 层正常工作。我正在使用 Mongoose 连接到数据库(mongodb://localhost:3002/24hiresJobPost)和名为“jobs”的集合。在客户端,像这样的网址http://localhost:3001/api/status?可以通过 HTTP 发送以从 24hiresJobPost 数据库中获取/发布/放置/删除数据。我的问题是如何从 android/ios 客户端捕获用户输入,并根据用户输入连接到不同的数据库。例如,如果用户想从 24hiresUser 数据库而不是 24hiresJobPost 数据库中查询数据。目前这是不可能的,因为正在连接的数据库是硬编码的。
服务器.js
//dependencies:
var express = require('express');
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
//connect to mongoDB
mongoose.connect('mongodb://localhost:3002/24hiresJobPost');
mongoose.set("debug",true);
//express
var app = express();
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());
//routes
app.use('/api', require('./routes/api'));
app.get('/test',(req,res) =>{
console.log('/test trigger');
res.send('server.js test OK!');
});
//strt server
app.listen(3001);
console.log('Server is runing on port 3001');
Api.js
//dependencies:
var express = require('express');
var router = express.Router();
//get models:
var Status = require('../models/status');
//routes
Status.methods(['get', 'post', 'put', 'delete']);
Status.register(router, '/status');
//return router:
module.exports = router;
Status.js
//dependencies:
var restful = require('node-restful');
var mongoose = restful.mongoose;
//Schema
var statusSchema = new mongoose.Schema({
category : String,
category_mostrecent_startdate : Number,
category_mostrecent_wagesrange : Number,
category_mostrecent_wagesrange_startdate : Number,
category_negatedtime : Number,
city : String,
closed : String,
company : String,
date : String,
desc : String,
fulladdress : String,
latitude : Number,
longitude : Number,
lowertitle : String,
mostrecent_startdate : Number,
mostrecent_wagesrange : Number,
mostrecent_wagesrange_startdate : Number,
negatedtime : Number,
postimage : String,
postkey : String,
time : Number,
title : String,
uid : String,
userimage : String,
username : String,
wages : String
});
//return models:
module.exports = restful.model('jobs', statusSchema);
【问题讨论】: