Javascript 我在node.js express中遇到了一些路由问题
我的应用程序正在使用react 我正在尝试在node.js中使用express构建API 所以我的服务器代码是Javascript 我在node.js express中遇到了一些路由问题,javascript,node.js,reactjs,express,single-page-application,Javascript,Node.js,Reactjs,Express,Single Page Application,我的应用程序正在使用react 我正在尝试在node.js中使用express构建API 所以我的服务器代码是 const express = require('express'); const app = express(); const PORT = 80; app.listen(PORT, () => { console.log('connected') }} app.get('/', (req, res) => { res.sendFile(__dirna
const express = require('express');
const app = express();
const PORT = 80;
app.listen(PORT, () => {
console.log('connected')
}}
app.get('/', (req, res) => {
res.sendFile(__dirname + '/public/index.html')
})
//api
app.get('/user', .....
res.json(~~~)
app.post('/user', .........
res.json(~~~~)
因为我的客户是spa(react)
服务器代码中只有一个“sendFile”
其余的都是API,它返回JSON
所以我只想使用API来获取或ajax方式
但是,目前的情况是,如果客户端直接访问api url
浏览器可以看到json而不是我的spa
有没有办法解决这个问题
谢谢。要使用SPA路由方式,您需要将页面URL和api URL分开:
const express = require('express');
const app = express();
const PORT = 80;
app.listen(PORT, () => {
console.log('connected')
}}
//api
app.get('/api/user', .....
res.json(~~~)
app.post('/api/user', .........
res.json(~~~~)
app.get('/*', (req, res) => {
res.sendFile(__dirname + '/public/index.html')
})
请注意:
/*
路由遵循api,因此所有与以前路径不匹配的路由都会呈现SPA页面*
,因此当您路由到/user
时,它会呈现SPA页面,然后在客户端呈现用户
页面api
前缀,用于区分api和SPA路径交换get to a post,稍微更改url,然后将get to a重定向回spa