[英]I'm having trouble getting the express router in node js to work
普通的get
方法在我的主server.js
文件上运行良好。 我也使用server.get('/favicon.ico', (req, res) => res.status(204));
解决网站图标请求的问题。 它工作得很好,同样只在我的主server.js
文件上。
当我尝试分离代码时,通过创建一个处理 api 调用的user.js
文件,我得到:
::ffff:127.0.0.1 - GET /favicon.ico HTTP/1.1 404 150 - 1.669 ms
::ffff:127.0.0.1 - GET /users HTTP/1.1 404 144 - 0.454 ms
这是我的主文件 - server.js
:
const express = require('express');
const morgan = require('morgan');
const server = express();
const router = require('../routes/user');
const mysql = require('mysql');
server.use(morgan('short'));
//server.use(express.static('../public'));
server.use(express.json());
server.use(express.urlencoded({ extended: false }));
router.use(router);
server.get('/', (req, res) => {
console.log("Test!");
res.send("This works!");
});
//server.get('/favicon.ico', (req, res) => res.status(204));
server.listen(3003, () => console.log('Program is running! Port: 3003'));
这是我的user.js
文件:
const express = require('express');
const mysql = require('mysql');
const router = express.Router();
router.get('/users', (req, res) => {
res.send('Hello');
});
router.get('/favicon.ico', (req, res) => res.status(204));
module.exports = router;
我不确定这是否相关,但我在尝试使用server.use(express.static('../public'))
时也遇到了同样的问题。 它不起作用。 我无法提供我的 html 文件。 我在请求时尝试使用 csp 标头,但这不起作用。 在 html header
元标记中设置 CSP 策略也不起作用。
如果您在任何版本中发现问题,这些是某些模块和技术的版本:
Apache 2.4.39
节点 6.9.0 Windows 7 - 是的,我知道,但请耐心等待
如果有人可以帮助解决路由器问题或 static 文件服务器问题,将不胜感激。
谢谢你。
一个简单的方法是,在你的 server.js 文件中添加
server.use("/user", require("./routes/routes"));
注意:这里的 routes 是一个文件夹,而 routes.js 是该文件夹内的一个文件。
然后在你的 route.js 文件中添加
const express = require('express');
const router = express.Router();
const user = require('../controllers/user.controller');
// register controllers
const userController = new user();
userController.register(router);
module.exports = router;
在用户注册(路由器)方法中传递您的路由器。 并且可以在您的 user.js 文件中轻松访问它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.