gpt4 book ai didi

node.js - 错误: listen EADDRINUSE 3443

转载 作者:太空宇宙 更新时间:2023-11-04 00:26:16 26 4
gpt4 key购买 nike

我的代码中有两个app.listens,我收到一个错误,当我取出其中一个时,身份验证停止工作,我该如何解决这个问题,我正在尝试将护照js实现到我的应用程序中(我已经遵循了教程,并且我有护照js示例正在工作,我只想将其实现到我的项目中)这是我收到的以下错误

screenshot here

   'use strict'

const express = require('express')
const fs = require('fs')
const https =require('https')
const path = require('path')

var app = express();

var bodyParser = require('body-parser');
var morgan = require('morgan');
var mongoose = require('mongoose');

var jwt = require('jsonwebtoken'); // used to create, sign, and verify tokens
var config = require('./config'); // get our config file
var Index = require('./api/planner/index'); // get our mongoose model


var port = process.env.PORT || 3443; // used to create, sign, and verify tokens
mongoose.connect(config.database); // connect to database
app.set('superSecret', config.secret); // secret variable

// use body parser so we can get info from POST and/or URL parameters
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

// use morgan to log requests to the console
app.use(morgan('dev'));

// =======================
// routes ================
// =======================
// basic route
app.get('/', function(req, res) {
res.send('Hello! The API is at http://localhost:' + port + '/api');
});

// API ROUTES -------------------
// get an instance of the router for api routes
var apiRoutes = express.Router();

// TODO: route to authenticate a user (POST http://localhost:8080/api/authenticate)
apiRoutes.post('/authenticate', function(req, res) {
// find the user
User.findOne({
name: req.body.name
}, function(err, user) {

if (err) throw err;

if (!user) {
res.json({ success: false, message: 'Authentication failed. User not found.' });
} else if (user) {

// check if password matches
if (user.password != req.body.password) {
res.json({ success: false, message: 'Authentication failed. Wrong password.' });
} else {

// if user is found and password is right
// create a token
var token = jwt.sign(user, app.get('superSecret'), {
expiresIn: 1440 // expires in 24 hours
});

// return the information including token as JSON
res.json({
success: true,
message: 'Enjoy your token!',
token: token
});
}

}

});
});
// TODO: route middleware to verify a token
apiRoutes.use(function(req, res, next) {

// check header or url parameters or post parameters for token
var token = req.body.token || req.query.token || req.headers['x-access-token'];

// decode token
if (token) {

// verifies secret and checks exp
jwt.verify(token, app.get('superSecret'), function(err, decoded) {
if (err) {
return res.json({ success: false, message: 'Failed to authenticate token.' });
} else {
// if everything is good, save to request for use in other routes
req.decoded = decoded;
next();
}
});

} else {

// if there is no token
// return an error
return res.status(403).send({
success: false,
message: 'No token provided.'
});

}
});

// route to show a random message (GET http://localhost:8080/api/)
apiRoutes.get('/', function(req, res) {
res.json({ message: 'Welcome to the coolest API on earth!' });
});

// route to return all users (GET http://localhost:8080/api/users)
apiRoutes.get('/users', function(req, res) {
User.find({}, function(err, users) {
res.json(users);
});
});

// apply the routes to our application with the prefix /api
app.use('/api', apiRoutes);
// we'll get to these in a second
app.get('/setup', function(req, res) {

// create a sample user
var nick = new User({
name: 'Nick Cerminara',
password: 'password',
admin: true
});

// save the sample user
nick.save(function(err) {
if (err) throw err;

console.log('User saved successfully');
res.json({ success: true });
});
});



// =======================
// start the server ======
// =======================
app.listen(port);
console.log('Magic happens at http://localhost:' + port);


const directoryToServe = 'client'
//const port = 3443

app.use('/',express.static(path.join(__dirname,'..',directoryToServe)))

const httpsOptions = {
cert: fs.readFileSync(path.join(__dirname,'ssl','server.crt')),
key: fs.readFileSync(path.join(__dirname,'ssl','server.key'))
}

https.createServer(httpsOptions, app)
.listen(port, function()
{
console.log(`Serving the ${directoryToServe}/directory at https://localhost:${port}`)})

var bodyParser = require('body-parser');






app.use(bodyParser.json());
app
app.get('/', function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.end("We're up and running!!!");
});


var plan = require('./api/planner/index');

app.get('/api/planner',plan.index);
app.post('/api/planner',plan.create);
app.put('/api/planner/:id',plan.update);
app.delete('/api/planner/:id',plan.delete);




console.log("Server running at http://127.0.0.1:8000/");
//

最佳答案

此错误可能是由于使用繁忙的端口引起的。如果您使用的是ubuntu,可以通过lsof -i:portnumber检查端口状态。运行该命令后,您将获得一个 PID。您可以通过kill -9 pid释放端口。

Windows 和 Mac 有类似的命令。

关于node.js - 错误: listen EADDRINUSE 3443,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42659455/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com