我正在使用nodejs进行Web应用程序。在这种情况下,我对在任何文件上应用小的更改时连续触发命令“npm start”感到沮丧。
问题1:如果不打开命令提示符,如何保持自动调用我的“npm start”有什么办法吗?
问题2:我还要在url中删除此端口显示。
我想要如下结果,例如:
当前网址:http://localhost:3200/login 预期网址:http://localhost/myprojectname/login
答案 0 :(得分:1)
node-dev都会自动重启您的应用程序。使用npm install -g node-dev
安装它然后使用node-dev server.js
运行您的应用程序(或者如果不是server.js,则调用项目的入口点文件)。
对于开发,最简单的方法就是使用URL中的端口。要摆脱它,您需要在端口80上运行您的应用程序,这需要以root身份运行,这是不安全的。有办法(通过ngrok iptables,nginx等),但大多数开发人员选择在本地开发期间只处理URL中的端口
答案 1 :(得分:0)
尝试nodemon module,Nodemon是一个实用程序,它将监视源中的任何更改并自动重新启动服务器。在本地计算机上进行开发完善,每次更改时都不再需要处理npm start代码。它将自动重启服务器,更改将立即反映。
全局安装
npm install -g nodemon
然后尝试使用nodemon app.js
代替npm start
或node app.js
如果您想使用端口80,您应该使用root / administrator权限运行您的应用程序,并确保该端口上没有其他服务正在运行另一个解决方案,我强烈建议使用nginx服务器反向代理设置。安装您计算机上的nginx服务器,以下是您可以使用nginx反向代理从网址中删除所需端口号的设置。
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:3000/;
proxy_redirect http://localhost:3000/ https://$server_name/;
}
}
希望这会对你有所帮助。