gpt4 book ai didi

node.js - Grunt 开发 EADDRINUSE

转载 作者:太空宇宙 更新时间:2023-11-03 22:16:46 25 4
gpt4 key购买 nike

这是我的 Gruntfile:

module.exports = function(grunt) {

grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
watch: {
serve: {
files: ['server.js', 'src/**/*.coffee'],
tasks: ['coffee', 'develop'],
options: {
nospawn: true
}
},
css: {
files: ['lib/less/main.less'],
tasks: ['less'],
options: {
nospawn: true
}
},
test: {
...
}
},

jasmine_node: {
...
},
develop: {
server: {
file: 'server.js'
}
},
coffee: {
compile: {
expand: true,
bare: true,
cwd: 'src/',
src: ['**/*.coffee'],
dest: 'lib/',
ext: '.js'
}
},
copy: {
...
},

jasmine: {
...
},
less: {
..
},
concurrent: {
options: {
logConcurrentOutput: true
},
serve: {
tasks: ["watch:css", "watch:serve"]
},
}
});

grunt.loadNpmTasks('grunt-contrib-coffee');
...
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-concurrent');
grunt.registerTask('serve', ['coffee', 'develop', 'concurrent:serve']);
grunt.registerTask('test', ['coffee', 'jasmine_node'/*, 'watch:test'*/]);
grunt.registerTask('build', ['coffee', 'less']);
grunt.registerTask('templates', ['copy']);

};

问题:第一次很好地启动我的服务器,编辑咖啡文件后,我的服务器抛出错误 EADDRINUSE,但 url 仍然可以访问(因此第一个服务器没有关闭)。完整项目:http://github.com/OpenCubes/OpenCubes

[grunt-develop] >
events.js:72
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at errnoException (net.js:904:11)
at Server._listen2 (net.js:1042:14)
at listen (net.js:1064:10)
at net.js:1146:9
at dns.js:72:18
at process._tickCallback (node.js:419:13)

>> application exited with code 8

最佳答案

您指定的行为符合预期。当您启动监视任务时,它会在指定端口上启动服务器。但是,当您保存时,监视任务会尝试在同一端口上再次启动服务器,但服务器实例已在该端口上运行。因此,您会收到 EADDRINUSE 错误,因为该端口已在使用中。

当您终止 grunt 任务时,它会终止进程,其中包括您正在运行的服务器。

要解决您的问题(尽管问题有些不清楚),您需要先终止服务器,然后再在同一端口上启动新服务器。最简单的方法可能是包含类似 grunt-nodemon 的模块或专门用于 express 的众多模块之一。

此外,如果您需要运行服务器进行测试,并且使用supertest,则不需要让服务器监听端口。测试您的 API。

关于node.js - Grunt 开发 EADDRINUSE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25454599/

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