gpt4 book ai didi

node.js - "Simple"使用 Node/mongo/express 的 RESTful API

转载 作者:太空宇宙 更新时间:2023-11-04 02:25:56 25 4
gpt4 key购买 nike

我对服务器端 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 在产品中未定义。

我已经一遍又一遍地阅读了本教程,没有发现我的代码有任何问题。所有库似乎都已正确安装。蒙戈正在运行...

我有一种感觉 mongoose.Schema 没有正确注册,但不知道为什么,因为一切似乎都与教程中一样 - 教程中没有类似的提示 - 所以我只能假设这是“我的问题”,但我只是看不出我哪里出了问题......

提前致谢......

最佳答案

我完全复制了您的代码,然后能够毫无问题地运行它。因此,这很可能意味着您的本地环境存在一些问题。很可能是旧的/过时的软件包。

在根目录中,创建一个名为 package.json 的文件,其中包含以下内容:

{
"name": "stackoverflow-30492214",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node server.js"
},
"dependencies": {
"body-parser": "^1.12.4",
"express": "^4.12.4",
"mongoose": "^3.9.7",
"node-restful": "^0.1.18"
},
"devDependencies": {}
}

然后,在同一目录中的终端中运行 npm clean && npm install。这应该按照 package.json 的定义下载/安装/构建依赖项。完成后,尝试再次运行服务器 node server.js。您可能会收到有关 mongoose 包是不稳定版本的警告,但您不应该看到任何 .method() 或 .register() 未定义错误。

关于node.js - "Simple"使用 Node/mongo/express 的 RESTful API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30492214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com