[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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JAVA 实习面试题大全必看

    JAVA实习面试题大全必看JavaSE88基础语法9Q1:简单说说Java有哪些数据类型答:①分为基本数据类型和引用数据类型。②基本数据类型包括:数值型(byte、short、int、long、float、double),字符型(char)以及布尔型(boolean)。除了基本类型外,其他数据类型都属于引用类型,包括类、接口、数组等。Q2:floatnumber=3.4;有没有问…

    2022年4月6日
    38
  • PCIe 1. PCI与PCIe学习一——硬件篇

    PCIe 1. PCI与PCIe学习一——硬件篇最近在学习驱动开发过程中涉及到PCI相关知识,在网上看了很多文章,良莠不齐,我总结一下比较好的文章分享给大家,那就从源头开始说起。PCI总线和设备树是X86硬件体系内很重要的组成部分,几乎所有的外围硬件都以这样或那样的形式连接到PCI设备树上。虽然Intel为了方便各种IP的接入而提出IOSF总线,但是其主体接口(primaryinterface)还依然是PCIe形式。我们下面分成两部分介绍PCI和他的继承者PCIe(PCIexpress):第一部分是历史沿革和硬件架构;第二部分是软件界面和U

    2022年6月20日
    32
  • CAD拉伸的快捷命令_cad拉伸实体快捷键

    CAD拉伸的快捷命令_cad拉伸实体快捷键CAD快捷键在CAD绘图中是不可或缺的,刚入门CAD的小伙伴们一定要熟练掌握常用CAD快捷键命令的使用。那么CAD拉伸快捷键命令是什么呢?又该如何使用呢?下面小编就来给大家介绍一下浩辰CAD软件中CA

    2022年8月4日
    7
  • settings官方网站_phpstorm中文

    settings官方网站_phpstorm中文setting —> php,选择php版本,并点击…,选择到php.exe进入到appserv底下找到php.ini文件,查找date.timezone,去掉前面的;号,添加”Asia/Shanghai”重启appserv环境,就是重启下apache 和 mysql服务发现依然失败后面重启电脑就可以了哈哈哈哈哈哈哈哈…

    2022年8月18日
    6
  • vue组件系列1、弹窗

    vue组件系列1、弹窗

    2021年7月2日
    110
  • c语言线程间传递消息,线程间通信[通俗易懂]

    c语言线程间传递消息,线程间通信[通俗易懂]线程间通信前面一章讲了线程间同步,提到了信号量、互斥量、事件集等概念;本章接着上一章的内容,讲解线程间通信。在裸机编程中,经常会使用全局变量进行功能间的通信,如某些功能可能由于一些操作而改变全局变量的值,另一个功能对此全局变量进行读取,根据读取到的全局变量值执行相应的动作,达到通信协作的目的。RT-Thread中则提供了更多的工具帮助在不同的线程中间传递信息,本章会详细介绍这些工具。学习完本章,…

    2022年10月7日
    2

发表回复

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

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