javascript - Express js路由器不工作
问题描述
这是我的 home.js 代码
// import modules
var express = require('express');
var mongoose = require('mongoose');
var bodyparser = require('body-parser');
var cors = require ('cors');
var path = require ('path');
var app = express();
const route= require('./routes/route');
//port no
const port =3000
app.use(cors());
app.use(bodyparser.json());
//static files
app.use(express.static(path.join(__dirname,'public')));
app.use('./api', route);
//testing server
app.get('/', (req,res)=>{
res.send('foober');
})
app.listen(port,()=>{
console.log('server started at port:' + port);
});
这是 route.js 代码
const express = require('express');
const router = express.Router();
router.get('/contacts', (req, res, next )=>{
res.send('retrieve contact');
});
module.exports =router;
但是每当我运行'localhost:3000/api/contacts'时,我都会收到'Cannot GET /api/contacts'错误。我对此很陌生,我做错了什么?
解决方案
url 中的一个点用于分隔域,如果您的路由安装在./api
您必须访问的位置yourserver.com./api
,因为 url 无效,因此该访问将不起作用。
推荐阅读
- c# - 如何安装 .cer 文件并使用私钥导出到 .pfx 文件
- node.js - 节点 pg 客户端连接返回什么
- python - 如何计算熊猫每个时期的增加量
- c# - 在 linq 查询中初始化一个字符串
- angular - @angular/fire 存在的地方
- typescript - 是否可以从我的自定义扩展中更改 vscode 设置?
- python - 相干图空白 - nan 的相干值
- width - 如何在 Blueprintjs 中使用(或模拟)填充进行选择?甚至是固定宽度?
- python - pip 包的 Python 目录不起作用
- php - laravel 中 Eager Loading 字段的变化