gpt4 book ai didi

node.js - 如何在 NodeJS 中创建具有唯一 id 的路由

转载 作者:太空宇宙 更新时间:2023-11-04 00:55:34 30 4
gpt4 key购买 nike

所以我正在开发一个包含node、express、mongoose 和 mongodb 的项目。我能够创建/保存主题到数据库。但是当保存/创建主题时,我想将用户重定向到该创建主题的主题详细信息页面(因此基本上每个创建的主题都有自己基于 id 的唯一 url,如下所示 -> localhost:3000/topicdetail/id )

我的问题是,重定向时出现错误:错误:无法在 View 目录“/Users/Grace/Desktop/QA/views”中查找 View “错误”

所以我的主要问题是我是否使用它自己的唯一 ID 正确地重定向它,或者我是否做了其他错误的事情。欢迎任何帮助。

我的代码如下:

var mongoose = require('mongoose');
var Topic = require('../models/topic');
var db = require('../config/database');
var express = require('express');
var router = express.Router();

// render the start/create a new topic view
router.get('/', function(req, res) {
res.render('newtopic');
});

// save topic to db
router.post('/',function(req, res, next){
console.log('The post was submitted');

var topic = new Topic
({
"topicTitle": req.body.topicTitle,
"topicDescription": req.body.topicDescription,
"fbId": req.body.userIdFB,
"twId": req.body.userIdTW
})

topic.save(function (err, topic)
{
if(err){
return next(err)
console.log('Failed to save the topic to the database');
}
else
{
console.log('Saved the topic succesfully to the database');
// each topic has its own unique url
res.redirect('/topicdetail/{id}');
}
})

});

module.exports = 路由器;

最佳答案

调用 res.redirect('/topicdetail/{id}'); 不会插入任何 ID。 Express 不会重新格式化字符串。它接受您定义的重定向(在本例中为 /topicdetail/{id})并执行它。就像您将其插入浏览器一样。

要重定向详细 View ,您可以执行以下操作:res.redirect('/topicdetail/' + topic._id); 并将 topic.id 替换为您的文档 ID 或其他标识符之类的内容。

提醒一下:您的详细路线需要在路线定义中添加一个参数。示例:app.get('/verification/:token', users);:token 是您的参数。更多关于routing guide.

关于node.js - 如何在 NodeJS 中创建具有唯一 id 的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30018263/

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