首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在节点中使用cors

如何在节点中使用cors
EN

Stack Overflow用户
提问于 2022-06-25 07:59:12
回答 1查看 101关注 0票数 -3
代码语言:javascript
复制
'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出了问题?对于网络浏览器来说,这不是一个问题:我可以在互联网上冲浪。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-25 08:12:25

你的问题与CORS无关。

您正在尝试创建一个侦听端口80上的传入请求的服务器。(您提供的代码显示端口3000,但我假设您是在询问更改时会发生什么)。

错误消息说,您无法运行正在监听该端口的服务器,因为它正在使用中。这意味着您已经有一个服务器(可能是同一服务器的另一个实例,但更可能是另一个服务器,如Apache )已经在运行并使用端口80。

不能让两个服务器监听同一个端口。如果浏览器向端口80发出HTTP请求,那么计算机将不知道请求的目标是哪个服务器。

对于web浏览器来说,这不是一个问题,因为它们不监听传入的请求。他们提出发出的请求。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72752199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档