【发布时间】:2020-12-20 21:57:56
【问题描述】:
大家晚上好 我正在尝试使用 mongodb 设置快速服务器 只要我定义没有参数的路由,我的测试就可以使用邮递员工作,但是一旦我创建了一个带参数的 get 路由,我就会遇到 404 错误 Cannot GET /api/stuff 我在这条路线上放了一个console.log,但它没有通过 我一直在寻找几个小时并尝试了几种没有结果的解决方案 这是我的代码你能帮我解决和理解问题吗 谢谢大家
我的文件 server.js:
const http = require('http');
const app = require('./app');
const normalizePort = val => {
const port = parseInt(val, 10);
if (isNaN(port)) {
return val;
}
if (port >= 0) {
return port;
}
return false;
};
const port = normalizePort(process.env.PORT || '4000');
app.set('port', port);
const errorHandler = error => {
if (error.syscall !== 'listen') {
throw error;
}
const address = server.address();
const bind = typeof address === 'string' ? 'pipe ' + address : 'port: ' + port;
switch (error.code) {
case 'EACCES':
console.error(bind + ' requires elevated privileges.');
process.exit(1);
break;
case 'EADDRINUSE':
console.error(bind + ' is already in use.');
process.exit(1);
break;
default:
throw error;
}
};
const server = http.createServer(app);
server.on('error', errorHandler);
server.on('listening', () => {
const address = server.address();
const bind = typeof address === 'string' ? 'pipe ' + address : 'port ' + port;
console.log('Listening on ' + bind);
});
server.listen(port);
我的文件 app.js
const express = require('express');
// Pour gérer la demande POST provenant de l'application front-end,
// nous devrons être capables d'extraire l'objet JSON de la demande. Il nous faudra le package body-parser
const bodyParser = require('body-parser');
// utilisation du package mongoose pour interagir avec MongoDb
const mongoose = require('mongoose');
// import du schema de donnees Users
const User = require('./models/user');
const path = require ('path');
const cors = require("cors");
const app = express();
mongoose.connect('mongodb+srv://user1:bz8FcivTvhnjxzog@cluster0.d3kne.mongodb.net/leads_manager?retryWrites=true&w=majority',
{ useNewUrlParser: true,
useUnifiedTopology: true })
.then(() => console.log('Connexion à MongoDB réussie !'))
.catch(() => console.log('Connexion à MongoDB échouée !'));
// éfinissez sa fonction json comme middleware global pour votre application,
// juste après avoir défini les headers de la réponse :
app.use(bodyParser.json());
app.use(
bodyParser.urlencoded({
// to support URL-encoded bodies
extended: true,
}),
);
app.use (cors({
origin: "*", // restrict calls to those this address
methods: 'GET,PUT,POST,DELETE'
}))
app.use(express.static(path.join(__dirname, 'build')));
// recupere un utilisateur
app.get('/api/stuff/:id', (req, res, next) => {
console.log(
'coucou'
);
});
module.exports = app;```
thanks
【问题讨论】:
标签: node.js express parameters get postman