无法在树莓派上运行基本的Node.Js文件

时间:2018-08-13 00:39:48

标签: node.js express raspberry-pi

因此,我已经在我的树莓派上安装了node.js。通过运行以下命令检查它是否已安装:

node -v

产生:4.2.1和

npm -v

,得到2.14.7。但是,当我尝试运行任何.js文件(我已经测试过在我的PC上的节点中运行)时,它失败,并显示以下内容:

    pi@raspberrypi:~/share/Node $ node Brew-View.js 
events.js:141
      throw er; // Unhandled 'error' event
      ^

Error: listen EACCES 0.0.0.0:80
    at Object.exports._errnoException (util.js:874:11)
    at exports._exceptionWithHostPort (util.js:897:20)
    at Server._listen2 (net.js:1221:19)
    at listen (net.js:1270:10)
    at Server.listen (net.js:1366:5)
    at EventEmitter.listen (/home/pi/share/Node/node_modules/express/lib/application.js:618:24)
    at Object.<anonymous> (/home/pi/share/Node/Brew-View.js:39:8)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)

我什至回到了基础知识,只是运行了一个刚刚拥有的文件

console.log('Hello.');

,结果相同。这听起来像是由于预装的模块不良导致的问题。但这是一个全新的安装(node和raspbian都安装)。您是否需要针对pi上的节点专门执行一些设置步骤或以其他方式调用它? 注意:这是在pi 3 B +上

编辑:这是我正在运行的代码,产生141错误(我已添加ip并通过npm将该目录表示为该目录):

const express= require('express')
const ip = require('ip')


const ipAddr=ip.address();
const port=80;
const Server= express();
Server.use(express.static('public'))
Server.get('/',function(req,res){ 
    res.send('<html>'+
    '<head>'+
    '<meta charset ="UTF-8">'+
    '<link rel="stylesheet" type="text/css" href="./main.css"></head><body>'+
    '<h1>Brew View</h1>'+
    '<p>my IP is: '+ipAddr+":"+port+'</p>'+
    '</body>'+
    '</html>')
})

 // Handle 404
 Server.use(function(req, res) {
    res.status(404).send('<html>'+
    '<head>'+
    '<meta charset ="UTF-8">'+
    '<link rel="stylesheet" type="text/css" href="./main.css"></head><body>'+
    '<h1>404: Page not Found</h1>'+
    '</body>'+
    '</html>');
 });

 // Handle 500
 Server.use(function(error, req, res, next) {
    res.send('500: Internal Server Error', 500);
 });

Server.use(express.static('public'))
Server.listen(80,()=> console.log("Hello. Brew View is Hosted at: "+ipAddr+":"+port))

这也发生在基于HTTP模块的更基本的服务器上。

编辑:因此解决方案是没有root用户就不能自动在端口80上托管。

0 个答案:

没有答案