我已经集成了我的bot api。我原以为它们会很好用,但事实并非如此。
我仍然不明白服务器如何中止自己…这是错误输出,以及代码截图。请帮帮我……
Error: Request aborted
at onaborted (/home/runner/TModeration-Server/node_modules/express/lib/response.js:1052:15)
at Immediate._onImmediate (/home/runner/TModeration-Server/node_modules/express/lib/response.js:1094:9) {
code: 'ECONNABORTED'
}
// API server
const express = require('express')
const path = require("path")
const app = express()
const PORT = 443
app.get('/api/', (req, res) => {
var options = {
root: path.join(__dirname)
};
res.writeHead(200, {'Content-Type': 'text/plain'})
const requiredFile = req.path.toLowerCase.replaceAll('https://', '').replaceAll('tmoderation-server.henry133.repl.co', '').replaceAll('/api/', '')
res.sendFile(`./APIs/${requiredFile ?? "index.js"}`, options, function(err) { console.log(err) })
res.end()
})
app.get('/', (req, res) => {
var options = {
root: path.join(__dirname)
};
res.writeHead(200, {'Content-Type': 'text/html'})
res.sendFile("./html.txt", options, function(err) { console.log(err) })
res.end()
})
app.listen(PORT || 443, () => {
console.log(`APIs [BETA] is listening ${PORT}`)
})
形象如果你想发送一个静态文件,你可以使用sendFile方法,尝试使用path.resolve:
app.get('/', (req, res) => {
res.status(200).sendFile(path.resolve('html.txt'));
})
我认为这个错误发生是因为下一个中间件方法没有被调用,试试这个语法:
app.get('/', (req, res, next) => {
var options = {
root: path.join(__dirname)
};
res.writeHead(200, {'Content-Type': 'text/html'})
res.sendFile("./html.txt", options, function(err) {
if (err) {
next(err);
} else {
console.log('Sent file');
next();
}
})
res.end()
})