我基本上是在尝试从Express中的Sinatra重新创建它:
get '/' do
redirect '/channels'
end
我正在尝试构建一个 Node.js/Express.js 应用程序,并开始合并 MVC 结构。我的app.js
文件包含我的/
路由,如下所示:
应用.js
app.get('/', function(req, res) {
res.redirect('/search');
})
我希望它重定向到 controllers/search.js
中的/search
路由,其中包含以下内容:
控制器/搜索.js
const express = require('express');
const app = express();
app.get('/search', function(req, res) {
res.render('index.js');
})
浏览器确实重定向到localhost:3000/search
但它显示Cannot GET /search
。我看到的所有关于在 Express 中重新路由的教程和文档都没有显示整个文件,所以我无法判断我是否必须require
或export
ala Node.js 的任何内容。
任何帮助,不胜感激。
试试这个
服务器.js
var http = require('http');
var express = require('express');
var searchRouter = require('./searchRouter');
var app = express();
app.use('/', searchRouter);
var server = http.createServer(app);
server.listen(3000);
搜索路由器.js
var express = require('express');
var router = express.Router();
router.get('/', function(req, res, next) {
res.send('Nope, try /search');
});
router.get('/search', function(req, res, next) {
res.send('yeah!! you found me');
});
module.exports = router;
您可以通过以下方式扩展此逻辑
app.use('/search', searchRouter);
在搜索路由器中
// this handles /search
router.get('/', function(req, res, next) {}
//this handles /search/apple
router.get('/:id', function(req, res, next) {}