gpt4 book ai didi

javascript - Req.params.id 未定义

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

在呈现用户的个人资料页面时,我尝试通过访问 app.js 中的路由 /users/:id 来访问用户的 id。该路由由中间件 app.use('/users/:id', userProfile); 处理。

我收到的错误是404错误:未找到。根据返回给客户端的内容,它由 app.js 中的中间件处理,后面带有注释“catch 404 andforward to error handler”的路由声明。我不确定我做错了什么。我的代码哪里有错误?

app.js

var express = require('express');
var stormpath = require('express-stormpath');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

// include routes
var mainPage = require('./routes/mainPage');
var users = require('./routes/user');
var userProfile = require('./routes/userProfile');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

// routes
app.use('/', mainPage);
app.use('/api/users', users);
app.use('/users/:id', userProfile);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});

// error handlers

// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: err
});
});
}

// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: {}
});
});


module.exports = app;

userProfile.js

var User = require('../models').sequelize.models.User;
var express = require('express');
var router = express.Router();

router.get('/:id', function(req, res, next) {
User.findById({
id: req.params.id
})
.then(function(user) {
if(!user) {
var err = new Error('Not Found');
err.status = 404;
next(err);
} else
res.render('userProfile', { user: user });
});
});

module.exports = router;

userProfile.jade

extends layout

block content
#page-wrapper
.container
h2 User #{user.id}

最佳答案

在您的 app.js 中,更改

app.use('/users/:id', userProfile);

app.use('/users', userProfile);

因为您已经在 userProfile.js 中指定了 /:id

关于javascript - Req.params.id 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31227212/

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