Tag: 服务器

使用server.listen()处理错误(如EADDRINUSE)

我一直困惑/烦恼, server.listen()不采取错误优先callback: server.listen(port, function(){ // the first argument is *not* a potential error }); 一定是一个艰难的devise决定,不要将错误传递给listen()。 看来我们应该在这里处理错误: server.on('error', (e) => { if (e.code === 'EADDRINUSE') { console.log('Address in use, retrying…'); } }); 但我担心的是, server.on('error' )可能会触发多次,而不仅仅是当服务器启动。 如果EADDRINUSEtypes的错误被引发并返回到server.listen()callbackEADDRINUSE将会更加方便。 有一些我可以用来传回错误的模式,如下所示: exports.startServer = function(data, cb){ server.listen(data, cb); server.once('error', cb); }); 上面的代码是否安全,这样cb才会只发一次? 这不安全! 大声笑。 因为我们需要删除“错误”侦听器,如下所示: exports.startServer = function(data, cb){ let onError […]

JSONurl无法捕获空错误

我正在使用服务器JavaScript文件,JSON数据和节点服务器Atom编程! var fs = require('fs'); var dataP = fs.readFileSync('database.json'); var data = JSON.parse(dataP); var express = require('express'); var app = express(); var server = app.listen(3000); app.use(express('website')); app.get('/check/:input', addInput); function addInput(request, response){ var inputData = request.params.input; if(!inputData){ response.send("Error: no input was found"); } } 所以我有terminal运行我的服务器进入nodemon server.js当我testing的URL代码@ 本地主机:3000 /检查它不会捕获我写的错误消息错误:没有input被发现 ,我觉得很奇怪,因为它是一个空input,如果我假设正确。 我也试图改变if语句,并补充说: if(!data && data == null) //Also […]

节点js服务器。 httpstatus – 404

我做了一个小型服务器。 当我试图在浏览器中向我的服务器发出请求时,我可以看到正确的数据,但是当我试图通过代码向服务器发送请求时,我得到了httpstatus – 404。为什么会发生这种情况? 我的服务器代码: var express = require('express'); var http = require('http'); var app = express(); app.get('/api/check', function(req, res) { res.send('{"debug": "on"}'); }); exports.app = functions.https.onRequest(app);

无法使用server.js上的node.js连接到数据库

我是Node.js和后端开发的新手。 我正在尝试在OPENSHIFT服务器上为我的移动应用程序创buildWeb API。 但我是生活中的问题。 我试图连接到server.js上的数据库,以设置我需要的路由(HTTP请求)。 而不知何故,我不能在server.js定义我的数据库。 我可以连接任何其他文件,我试过,但是当我尝试through server.js`连接时through我得到错误 – 整个应用程序崩溃在服务器上。 我会尝试用代码示例来解释。 这是我的server.js #!/bin/env node // OpenShift sample Node application var express = require('express'); var fs = require('fs'); var db = require("./db_connection");//when I delete this line, there is not any error. /** * Define the sample application. */ var SampleApp = function() { // Scope. var […]

Node.js发送服务器input到客户端。 内存泄漏警告。 我的错误是什么? 那么node.js如何运行代码呢?

服务器: var net = require('net'); var stdin = process.openStdin(); var client_list = []; var server = net.createServer(function(connection) { //console.log('client connected'); connection.on('error', function(e){ if(e.code == 'ECONNRESET'){ console.log('Client dissconeccted'); } }); //connection.write('Hello World!\r\n'); stdin.addListener("data", function(d) { // note: d is an object, and when converted to a string it will // end with a linefeed. so we […]

如何将域名绑定到node.js?

我在dot.tk网站上注册了一个简单的域名进行testing。 让它被称为mysite.tk 。 我在node.js下有一个简单的应用程序,如“Hello World!” var express = require('express'); var app = express() var server = require('http').createServer(app); app.get('/', function(req, res) { res.send('Hello World!') }); server.listen(3000, function () { console.log('Port 3000!') }); 在本地服务器上,一切正常。 也就是说,在localhost:3000上显示“Hello World”。 问题:如何将新的mysite.tk域名和我的服务器绑定在计算机上? 我知道,默认情况下,当一个域名映射到一个IP地址,所有的stream量应该来到端口80 。 我不知道,也许这是问题。 我只是在这里使用另一个端口3000。 也许我应该运行一个代理服务器写在node.js将正确转发stream量? 但是,它是如何做的? 这个解决scheme如何分配一个域名到node.js服务器? 我不够了解。 它没有帮助我。

错误:没有指定默认引擎,也没有提供扩展名。 简单的路由

我正在一个小型的web项目上工作,并尝试与node.js&express中的基本路由相处。 服务器启动正常,并显示所有的网站,但当转到第二页加载一些(简单)的服务器数据发生错误。 服务器代码: const express = require('express'); //importiert express modul const app = express(); //und bildet eine Express-Application const server = require('http').createServer(app);//importiert http modul und bildet Server /* die dateien (bilder, skripte, css und html dokumente (public ordner)) werden statisch aus dem jeweiligen Verzeichnis geladen kann später so "GET localhost/style.css" aufgerufen werden */ app.use(express.static(__dirname + […]

如何在没有浏览器的情况下连接节点服务

我使用github上的node-jet库在websocket上构build一个客户端服务器。 其实我也问过这个问题也是库开发人员,但是没有得到任何回应。 有一个deamon,并有同行连接到它。 在它的文档中说peer可以通过webcoket或者普通的tcp连接来连接(以前从来没有用过第二个) 这里是我试图连接的服务器代码(当我尝试连接时运行) https://github.com/lipp/node-jet/blob/master/examples/todo/todo-server.js 一切工作正常,如果我在浏览器中运行我的同行JavaScript,但是,我不能够独立运行它。 var peer3 = new jet.Peer({ url: 'wss://217.78.109.178:8090' //url: (window.location.protocol === 'http:' ? 'ws://' : 'wss://') + window.location.host }) 文档说,如果没有提供url,它将使用普通的TCP,所以我也试过这个。 再次在浏览器中工作,但不是独立的。 任何想法 ? 我怎么解决这个问题 ? var peer3 = new jet.Peer({ }) $ node Peer.js Peer: connect failed { no remote stack name: 'jet.ConnectionClosed', message: '', url: 'https://github.com/lipp/node- jet/blob/master/doc/peer.markdown#jetconnectionclosed' }

无法通过互联网访问节点服务器

我有一个基本的restify节点应用程序。 它运行在具有静态IP地址的专用Windows服务器上。 这个服务器是由第三方build立的。 防火墙已configuration为将端口8000转发到此服务器。 我可以在本地很好地访问这个node-restify服务器。 我在Windows防火墙上设置了规则,允许通过端口8000的传入和传出TCPstream量 这是我的服务器创build和侦听代码: var server = restify.createServer(); server.listen(8000,'0.0.0.0', function() { console.log('%s listening at %s', server.name, server.url); }); 当使用localtunnel我可以访问服务器罚款。 我想弄清楚我的问题在哪里。 是我的node-restifyconfiguration导致这个问题,还是由第三方业务的Windows服务器的configuration?

Elifecycle错误是什么意思?

SyntaxError: /Users/DanaCarlin/Desktop/CS612/expensive.json: Unexpected string in JSON at position 5801 at JSON.parse (<anonymous>) at Object.Module._extensions..json (module.js:654:27) at Module.load (module.js:554:32) at tryModuleLoad (module.js:497:12) at Function.Module._load (module.js:489:3) at Module.require (module.js:579:17) at require (internal/module.js:11:18) at Object.<anonymous> (/Users/DanaCarlin/Desktop/CS612/server.js:2:17) at Module._compile (module.js:635:30) at Object.Module._extensions..js (module.js:646:10) npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! restful-restaurants@0.1.0 start: `node server.js` npm ERR! […]