'use strict';
const app = require('koa')();
const jwt = require('koa-jwt');
const bodyParser = require('koa-bodyparser');
const send = require('koa-send');
const serve = require('koa-static');
const jsonwebtoken = require('jsonwebtoken');
const error = require('./middleware/error-middleware.js');
const router = require('koa-router')();
// do not use this secret for production
const secret = 'supersecret';
app.use(error());
app.use(bodyParser());
app.use(serve('dist'));
app.use(jwt({ secret }).unless({
path: [/^(?!\/api\/)/]
}));
// for example use, we just check for specific username/password
// in the real world, we would check a database and check hashed password
router.post('/auth', function* () {
const username = this.request.body.username;
const password = this.request.body.password;
if (username !== 'chuck' && password !== 'norris') {
this.throw(401, 'Invalid username/password.');
}
const user = {
username,
email: 'chuck@norris.com',
firstName: 'Chuck',
lastName: 'Norris',
roles: ['admin']
};
const token = jsonwebtoken.sign(user, secret, {
issuer: 'localhost',
audience: 'someaudience',
expiresIn: '1d'
});
this.body = { token };
});
app.use(router.routes());
app.use(function* () {
yield send(this, '/dist/index.html');
});
app.on('error', err => console.log(err));
app.listen(3000, () => console.log('example running on port 3000'));如何解决这个错误?如果我运行一个端口为80的服务器,并尝试使用XMLHttpRequest,我将得到以下错误: error:侦听EADDRINUSE --如果我想在端口80上运行服务器,为什么NodeJS出了问题?对于网络浏览器来说,这不是一个问题:我可以在互联网上冲浪。
发布于 2022-06-25 08:12:25
你的问题与CORS无关。
您正在尝试创建一个侦听端口80上的传入请求的服务器。(您提供的代码显示端口3000,但我假设您是在询问更改时会发生什么)。
错误消息说,您无法运行正在监听该端口的服务器,因为它正在使用中。这意味着您已经有一个服务器(可能是同一服务器的另一个实例,但更可能是另一个服务器,如Apache )已经在运行并使用端口80。
不能让两个服务器监听同一个端口。如果浏览器向端口80发出HTTP请求,那么计算机将不知道请求的目标是哪个服务器。
对于web浏览器来说,这不是一个问题,因为它们不监听传入的请求。他们提出发出的请求。
https://stackoverflow.com/questions/72752199
复制相似问题