我正在尝试添加路线到' /注册'在我的节点快递应用程序。 GET到' /'正在工作,但' /注册'给出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>
答案 0 :(得分:0)
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
答案 1 :(得分:-2)
var express = require('express');
var router = express.Router();
router.post('/', function (req, res) {
res.render('signup', {OCR:"OCR TEXT"});
});
module.exports = router;
服务器未找到适当的方法调用,因此它正在发送您的404页面。
您必须在路线上使用POST方法,如果要向服务器发送一些数据