繁体   English   中英

为什么找不到我的节点快速路由?

[英]Why is my node express route not found?

我正在尝试在我的节点快速应用中将路由添加到“ / signup”。 到“ /”的GET工作正常,但是“ / signup”给出的404未找到。

index.js和signup.js都在根文件夹中。

signup.hbs和index.hbs都在我的views文件夹中。

index.js:

const express = require('express');
const engines = require('consolidate');
var signup = require('./signup');

const app = express();
app.engine('hbs', engines.handlebars);
app.set('views', './views');
app.set('view engine', 'hbs');

app.get('/', (req, res) => {
    res.render('index');
});

app.use('/signup', signup);

signup.js

var express = require('express');
var router = express.Router();

router.get('/', function (req, res) {
    res.render('signup', {text:"Send some text to template here"});
});

module.exports = router;

index.hbs中的链接(未找到404结果):

<a style="font-weight:bold; text-decoration:none;" href="/signup">Sign up</a>

默认情况下,node.js中的模块为单例,因此无需多次加载模块。 如果要将index.js视为将加载express.js的文件,请考虑导出已定义的express变量,并在signup.js中导入index.js。

index.js

const express = require('express');
const app = express();
...
module.exports{
    app
}

signup.js

const index = require('./index');
...
const router = index.app.Router();

另外,似乎您对app.use的使用还是有点过。 您仅在发送模块(signup.js)时,应提供路由器,快速应用程序或制作自己的中间件。 您可以在此处了解更多信息: https : //expressjs.com/en/4x/api.html#middleware-callback-function-examples

var express = require('express');
var router = express.Router();

 router.post('/', function (req, res) {
   res.render('signup', {OCR:"OCR TEXT"});
 });

module.exports = router;

服务器找不到合适的方法调用,因此正在发送404页面。

如果要向服务器发送一些数据,则必须在路由上使用POST方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM