【发布时间】:2015-05-27 20:09:28
【问题描述】:
我对服务器端 javascript 完全陌生,因此非常感谢任何帮助。
我最近按照本教程 https://www.youtube.com/watch?v=p-x6WdwaJco 使用 node.js mongodb 和 express 构建了一个简单的 RESTful API。本教程还使用了一个名为 node-restful https://github.com/baugarten/node-restful 的库。 首先我在根目录下建了一个server.js:
// Dependencies
var express = require('express');
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
// Mongo DB
mongoose.connect('mongodb://localhost/rest_test');
// Express
var app = express();
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
// Routes
app.use('/api', require('./routes/api'));
var test = require('./routes/api');
// Start Server
app.listen(3000);
console.log('API is running on port 3000')
然后我在 root/routes 中创建了 api.js
// Dependencies
var express = require('express');
var router = express.Router();
// Models
var Product = require('../models/product');
// Routes
Product.methods(['get', 'put', 'post', 'delete']);
Product.register(router, '/products');
// Return router
module.exports = router;
最后我在 root/models 中创建了一个名为 product.js 的文件:
// Dependencies
var express = require('express');
var restful = require('node-restful');
var mongoose = restful.mongoose;
// Schema
var productSchema = new mongoose.Schema({
name: String,
sku: String,
price: Number,
});
// Return model
module.exports = restful.model('Products', productSchema);
这是我的问题所在(我认为) - 服务器运行良好,直到我尝试在 api.js 的 mongoose.Schema() 上使用 .methods() 和 .register()。它一直告诉我 .methods 在产品中未定义。
我一遍又一遍地阅读本教程,并没有发现我的代码有任何问题。所有库似乎都已正确安装。 Mongo 正在运行...
我感觉 mongoose.Schema 没有正确注册,但不知道为什么一切似乎都和教程中的一样——教程中没有类似的抱怨——所以我只能假设这是“我的问题”,但我就是看不出哪里出错了......
提前谢谢....
【问题讨论】:
标签: node.js mongodb express mongoose