node.js - 如何在子域上制作 NodeJS 路由?
问题描述
不适用于子域上的 NodeJs 路由。当我向子域/我提出请求时,我得到了好的响应“主域 - 主页”,但是当我向子域/关于我提出请求时,我得到了错误
这是我的代码:
const app = express()
const bodyParser = require('body-parser')
const jwt = require("jsonwebtoken");
const path = require("path");
const server = require('http').createServer(app);
const db = require('./db/db');
const subdomain = require('express-subdomain')
var config = require('./config');
const port = 3000
app.get('/', (req, res) => {
res.send("Main domain - Homepage")
})
app.get('/about', (req, res) => {
res.send("Main domain - About")
})
server.listen(30000, function(){ console.log('Server started on ' + server.address().port); });```
Error is
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at webmaster@subdomain to inform them of the time this error occurred, and the actions you performed just before this error.
More information about this error may be available in the server error log.
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
解决方案
您可以使用轻量级包
对于每个路由,您可以指定您的自定义子域
const NodeAwesomeRouter = require('node-awesome-router')
const app = require('express')()
// GET -> USERS.site.com/user/info/1
const routes = {
key: '/user',
routes: {
'/info/:id?' () {
return {
method: 'get',
async handler (req, res) {
// your logic here
return res.status(200).send('welcome')
}
}
}
},
subdomain: 'users'
}
NodeAwesomeRouter({
app,
routes: [routes, anotherRoutes ],
middlewares: [...]
})
推荐阅读
- java - 如何为实体返回单例对象
- message-queue - 未检测到@SqsListener
- azure-functions - 与 Blazor Server 和 Azure Function 共享 SignalR 服务
- python - PyFirmata 是否支持 Arduino Nano?
- css - 使用旧 CSS 属性的 tinymce 编辑器
- dataframe - 使用多个分区时仅在一个分区上保存单个 parquet 文件
- python - 如何在 Airflow DAG 中连接“@task 定义的任务”和“PythonOperator 定义的任务”?
- python - 在 ubuntu 和其他操作系统上,Numpy 函数的结果与数组不同?
- android-viewmodel - fragment-ktx 中的 viewModels() 和 Koin 中的 viewModel() 有什么区别?
- loops - 如何使用“基于范围的 for 循环”获取输入