[Node.js]在windows下不得不防的小错误

[Node.js]在windows下不得不防的小错误

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

TypeError: Arguments to path.join must be strings
    at f (path.js:204:15)
    at Object.filter (native)
    at exports.join (path.js:209:40)
    at exports.send (E:\nodejs\demo\socket.io-express\node_modules\express\node_modules\connect\lib\middleware\static.js:129:20)
    at ServerResponse.res.sendfile (E:\nodejs\demo\socket.io-express\node_modules\express\lib\response.js:186:3)
    at io.sockets.on.socket.emit.text (E:\nodejs\demo\socket.io-express\app.js:8:6)
    at callbacks (E:\nodejs\demo\socket.io-express\node_modules\express\lib\router\index.js:272:11)
    at param (E:\nodejs\demo\socket.io-express\node_modules\express\lib\router\index.js:246:11)
    at pass (E:\nodejs\demo\socket.io-express\node_modules\express\lib\router\index.js:253:5)
    at Router._dispatch (E:\nodejs\demo\socket.io- express\node_modules\express\lib\router\index.js:280:5)

Node.js中的两个模块Socket.io 和Express做整合的时候出现了下面的错误:


var express = require('express');
var app = module.exports = express.createServer(),
    io = require('socket.io').listen(app);
 
app.listen(3000);
 
app.get('/', function(req, res){
    res.sendfile(__dirname + '/index.html');
});
 
io.sockets.on('connection', function(socket){
    socket.emit('welcome', {text: 'OH HAI! U R CONNECTED!'});
});

错误原因:

基本的错误原因是上面代码第8行,将代码改为下面形式就可以工作。

var express = require('express');var app = module.exports = express.createServer(),    io = require('socket.io').listen(app);app.listen(3000);app.get('/', function(req, res){	res.sendfile('/index.html', {root: __dirname});});io.sockets.on('connection', function(socket){	socket.emit('welcome', {text: 'OH HAI! U R CONNECTED'});});

在win 下 传

__dirname + ‘/index.html’ -> E:\nodejs\demo/index.html

貌似,那里用 url 解析模块.最后解析的结果不是windows 那种路径样子..

然后到创建流的时候路径就不正确了..

參考资料:https://github.com/visionmedia/send

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118705.html原文链接:https://javaforall.net

(0)
上一篇 2021年12月2日 下午2:00
下一篇 2021年12月2日 下午2:00


相关推荐

  • OpenClaw 分布式爬虫平台:基于 Docker Compose 的生产级容器化部署方案

    OpenClaw 分布式爬虫平台:基于 Docker Compose 的生产级容器化部署方案

    2026年3月15日
    4
  • 国密算法概述_国密算法一定要通过硬件吗

    国密算法概述_国密算法一定要通过硬件吗国密即国家密码局认定的国产密码算法,即商用密码。国密算法是国家密码局制定标准的一系列算法。其中包括了对称加密算法,椭圆曲线非对称加密算法,杂凑算法。具体包括SM1,SM2,SM3等,其中:SM2为国家密码管理局公布的公钥算法,其加密强度为256位。其它几个重要的商用密码算法包括:SM1,对称加密算法,加密强度为128位,采用硬件实现;SM3,密码杂凑算法,杂凑值长度为32字节,和SM2算…

    2022年10月7日
    3
  • PHP实现执行定时任务的几种思路详解

    PHP实现执行定时任务的几种思路详解

    2021年10月22日
    107
  • vue学习笔记-day03

    vue学习笔记-day03

    2021年7月12日
    86
  • 查看数据库隔离级别,mysql

    查看数据库隔离级别,mysql1.查看当前会话隔离级别select@@tx_isolation;2.查看系统当前隔离级别select@@global.tx_isolation;3.设置当前会话隔离级别setsessiontransactionisolatinlevelrepeatableread;4.设置系统当前隔离级别setglobaltransac…

    2022年5月9日
    159
  • HiPQTools工具HiPQStitchingTool标定(二)

    HiPQTools工具HiPQStitchingTool标定(二)一 挑件海思文档重要描述 1 拼接原理 使用 HiPQTools 工具 HiPQStitchin 进行图像拼接 就要先进行标定 确定相机之间的位置关系 和畸变校正 前面写的文章中 介绍了 使用 opencv 的 surf 特征匹配和最佳缝合线算法 进行处理 然后离线计算获得参数 查表法进行图像拼接存在局限性 只能适合静态的放置相机 和纹理丰富的场景 安防监控 不适合运动的场景 比如车载运动的全景场景 全景拼接的基本方法是将各路采集的图像按照对应的镜头模型投影到虚拟球面 进行拼接融合 然后再通过设置的投影方

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号