我只是想创建一个输出给定URL的HTTP状态的节点服务器.
当我尝试用res.write刷新响应时,我得到错误:抛出新的TypeError('第一个参数必须是字符串或缓冲区');
但如果我用console.log替换它们,一切都很好(但我需要将它们写入浏览器而不是控制台).
代码是
var server = http.createServer(function (req, res) {
res.writeHead(200, {"Content-Type": "text/plain"});
request({
uri: 'http://www.google.com',
method: 'GET',
maxRedirects:3
}, function(error, response, body) {
if (!error) {
res.write(response.statusCode);
} else {
//response.end(error);
res.write(error);
}
});
res.end();
});
server.listen(9999);
Run Code Online (Sandbox Code Playgroud)
我相信我应该在某个地方添加一个回调,但很困惑,任何帮助都表示赞赏.
我正在使用节点请求模块,定期向一组URL发送GET请求,有时在某些站点上收到以下错误.
Error: 29472:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:openssl\ssl\s23_clnt.c:683
问题是我总是或总是在某些URL上得到此错误,有时候.另外,用" strictSSL: false" 不能忽略它.
我已经读过这可能与我使用错误的协议(SSLv2,SSLv3,TLS ..)发送SSL请求有关.但这并不能解释为什么它会不规则地发生.
顺便说一句,我在Win 2008服务器上运行nodejs.
任何帮助表示赞赏.
有没有办法在nodejs中使用任何ActiveX com组件?
实际上,我永远不需要这个,但我在Windows上运行nodejs并试图发送ping请求而不需要新的进程(Windows不存在这样的模块).
由于存在一些用于使用原始套接字发送ping请求的Activex组件,我可以使用它们.
如何从JavaScript创建COM对象的示例如下:
var rs = new ActiveXObject("ADODB.Recordset");
Run Code Online (Sandbox Code Playgroud) 我对nodejs很新,并且有一个问题.
尝试创建一个函数,该函数将调用我从表中提及其ID的任何字段的值:
function getUserInfo (userID, dynamicField) {
var query = connection.query('SELECT '+dynamicField+' from users WHERE userID = '+connection.escape(userID));
query.on('result', function(row) {
return(row.dynamicField);
});
};
console.log(getUserInfo(8, userEmail)) //this should get me the userEmail value of the user with userID=8
Run Code Online (Sandbox Code Playgroud)
但是,我得到"未定义".如果我使用console.log而不是return,它会记录该值,但这不能用作在其他函数中使用以获取值的函数.
如果我可以获得修改功能的帮助,我将很高兴.