导航:首页 > 编程语言 > nodejszip

nodejszip

发布时间:2023-07-28 03:32:32

1. 怎么用nodejs搭建web服务器

使用Nodejs搭建Web服务器是学习Node.js比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块、文件系统、url解析模块、路径解析模块、以及301重定向问题,下面我们就简单讲一下如何来搭建一个简单的Web服务器。
作为一个Web服务器应具备以下几个功能:
1、能显示以.html/.htm结尾的Web页面
2、能直接打开以.js/.css/.json/.text结尾的文件内容
3、显示图片资源
4、自动下载以.apk/.docx/.zip结尾的文件
5、形如http://xxx.com/a/b/ , 则查找b目录下是否有index.html,如果有就显示,如果没有就列出该目录下的所有文件及文件夹,并可以进一步访问。
6、形如http://xxx.com/a/b, 则作301重定向到http://xxx.com/a/b/ , 这样可以解决内部资源引用错位的问题。
引入需要用到的几个模块:
//http协议模块
var http = require('http');
//url解析模块
var url = require('url');
//文件系统模块
var fs = require("fs");
//路径解析模块
var path = require("path");
创建服务并在指定的端口监听:
//创建一个服务
var httpServer = http.createServer(this.processRequest.bind(this));
//在指定的端口监听服务
httpServer.listen(port,function(){
console.log("[HttpServer][Start]","runing at http://"+ip+":"+port+"/");
console.timeEnd("[HttpServer][Start]");
});
在创建服务的时候需要传递一个匿名函数processRequest 对请求进行处理,processRequest接收2个参数,分别是request和response, request对象中包含了请求的所有内容,request是用来设置响应头以及对客户端做出响应操作。
processRequest:function(request,response){
var hasExt = true;
var requestUrl = request.url;
var pathName = url.parse(requestUrl).pathname;
//对请求的路径进行解码,防止中文乱码
pathName = decodeURI(pathName);
//如果路径中没有扩展名
if(path.extname(pathName) === ''){
//如果不是以/结尾的,加/并作301重定向
if (pathName.charAt(pathName.length-1) != "/"){
pathName += "/";
var redirect = "http://"+request.headers.host + pathName;
response.writeHead(301, {
location:redirect
});
response.end();
}
//添加默认的访问页面,但这个页面不一定存在,后面会处理
pathName += "index.html";
hasExt = false; //标记默认页面是程序自动添加的
}
//获取资源文件的相对路径
var filePath = path.join("http/webroot",pathName);
//获取对应文件的文档类型
var contentType = this.getContentType(filePath);
//如果文件名存在
fs.exists(filePath,function(exists){
if(exists){
response.writeHead(200, {"content-type":contentType});
var stream = fs.createReadStream(filePath,{flags:"r",encoding:null});
stream.on("error", function() {
response.writeHead(500,{"content-type": "text/html"});
response.end("<h1>500 Server Error</h1>");
});
//返回文件内容
stream.pipe(response);
}else { //文件名不存在的情况
if(hasExt){
//如果这个文件不是程序自动添加的,直接返回404
response.writeHead(404, {"content-type": "text/html"});
response.end("<h1>404 Not Found</h1>");
}else {
//如果文件是程序自动添加的且不存在,则表示用户希望访问的是该目录下的文件列表
var html = "<head><meta charset='utf-8'></head>";
try{
//用户访问目录
var filedir = filePath.substring(0,filePath.lastIndexOf('\\'));
//获取用户访问路径下的文件列表
var files = fs.readdirSync(filedir);
//将访问路径下的所以文件一一列举出来,并添加超链接,以便用户进一步访问
for(var i in files){
var filename = files[i];
html += "<div><a href='"+filename+"'>"+filename+"</a></div>";
}
}catch (e){
html += "<h1>您访问的目录不存在</h1>"
}
response.writeHead(200, {"content-type": "text/html"});
response.end(html);
}
}
});
},
请求处理函数中有几个重点需要说一下:
对于路径中有中文的,浏览器会自动进行编码(英文不变,中文会变),因此在接收到地址后,需要对地址进行解码,否则最后得到的路径和真实路径不相符,
当访问路径不是以具体的文件结尾,并且不是以/结尾,则需要通过重定向加上/,表示当前目录,否则当前路径下的静态资源会找不到
如果访问路径是目录,则列出该目录下所有文件及文件夹,并可以点击访问,为了让中文目录能正常显示,则还要在header中设置charset=utf-8

2. 如何用sublime text 3进行node.js开发

习惯了用 Sublime Text开发神器写代码,目前在使用Node.js,正好github上有一个 Sublime Text的Node.js的插件,于是就尝试着配置了一下:

1、下载Nodejs插件,下载地址为:
https://github.com/tanepiper/SublimeText-Nodejs
下载zip压缩包后解压,文件名改为Nodejs

2、打开Sublime Text3,点击菜单“Perferences” =>“Browse Packages”打开“Packages”文件夹,并将第1部的Nodejs文件夹剪切进来

3、打开文件“Nodejs.sublime-build”,将代码 "encoding": "cp1252" 改为 "encoding": "utf8" ,将代码 "cmd": ["taskkill /F /IM node.exe & node", "$file"] 改为 "cmd": ["node", "$file"] ,保存文件

4、打开文件“Nodejs.sublime-settings”,将代码 "node_command": false改为 "node_command": "D:\\Program Files\\nodejs\\node.exe" ,将代码 "npm_command": false 改为 "npm_command": "D:\\Program Files\\nodejs\\npm.cmd" ,保存文件

5、编写一个测试文件test.js,按“ctrl+B"运行代码

3. sublime安装nodejs怎样配环境变量

1) 下载sublime并安装

2) 下载sublime的nodejs插件,需是集成Nodejs插件到sublime中

3) 解压zip文件, 并重命名文件夹“Nodejs”

4) 打开,操作"preference" --> "Browse packages", 打开一个目录,这个目录是众多语言IDE插件的存放地。

5) 复制”Nodejs“文件夹到这个目录。 这样就可以了吗? 酱样子还不行,还要更改配置文件。

6) 打开Nodejs文件夹,找到文件“Nodejs.sublime-build”, 拖拽到sublime,显示:

{
"cmd": ["node", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.js",
"shell":true,
"encoding": "cp1252",
"windows":
{
"cmd": ["taskkill /F /IM node.exe & node", "$file"]
},
"linux":
{
"cmd": ["killall node; node", "$file"]
}
}

需要更改上面标注的地方, 要更改encoding为GB2312或者utf8,如果不更改此属性可能导致build nodejs代码时终端显示乱码。

7) 要用sublime打开文件“Nodejs.sublime-settings” 或者 设置“preference” --》
“package settings” --》 “Nodejs” --》“setting-default” 打开文件并 更改成:

{
// save before running commands
"save_first": true,
// if present, use this command instead of plain "node"
// e.g. "/usr/bin/node" or "C:\bin\node.exe"
"node_command": /usr/bin/nodejs,
// Same for NPM command
"npm_command": /usr/bin/npm,
// as 'NODE_PATH' environment variable for node runtime
"node_path": false,

"expert_mode": false,

"ouput_to_new_tab": false
}

4. win7能不能安装nodejs

本来在这虚拟机下安装了ubuntu,想在linux下写nodejs。
遇到了一些问题总是升级不了。又不愿意重装系统。为了不浪费时间,在win7下用吧。
不罗嗦了。说正题
下载nodejs引擎,32bit version或者64bit version
下载最新版的npm zip格式压缩包:http://nodejs.org/dist/npm/
在硬盘某个位置,如F盘下建立一个文件nodejs,把上面两个下载的东西都放在这里,npm要解压。
配置两个环境变量:一个是PATH上增加node.exe的目录F:\nodejs,一个是增加环境变量NODE_PATH,值为F:\nodejs\node_moles。 配置路径:win7环境配置在系统》高级系统设置》高级》环境变量》系统变量中查找PATH,编辑加上F:\nodejs,再加上NODE_PATH变量和值。 5.打开Dos窗口。node -v 看下是否出现版本信息。 6.更新nodejs版本 npm update npm -g

5. 基于webrtc以及nodejs的P2P实时视频demo

吐槽, 你的分类错了, 导致不能贴代码。
github:

priologic/easyrtc
webRTC/webRTC.io

自己开发推荐使用/easyrtc

只是玩玩 对于webRTC.io使用简单

npm install webrtc.io

Client
<video id="local" autoplay="autoplay"></video>
<video id="remote" autoplay="autoplay"></video>

<script src="/webrtc.io.js"></script>
<script>

// note: make sure hostname available to all connecting clients
// (ie. probably not `localhost`)
rtc.connect('ws://yourserveraddress:8001');

rtc.createStream({"video": true, "audio":false}, function(stream){
// get local stream for manipulation
rtc.attachStream(stream, 'local');
});

rtc.on('add remote stream', function(stream){
// show the remote video
rtc.attachStream(stream, 'remote');
});

// more rtc callbacks are available
</script>

Server

var webRTC = require('webrtc.io').listen(8001);
//then a bunch of callbacks are available

6. vue init webpack 创建项目失败

不管什么问题,重新进行正确的安装,是解决问题的有效方法!(哲学)
下面讲的是在Windows 10操作系统环境下的全套操作。
需重新安装 nodejs(已包含NPM)、CNPM、@vue/cli、@vue/cli-init。
假如nodejs 用的是 node-v12.16.1-win-x64.zip (绿色非安装包),
假如 nodejs 已经解压到 "c:\nodejs-v12" 。目录中应该有node.exe这个文件。另外还有一些批命令:npm.cmd、npx.cmd。
一、将 c:\nodejs-v12 加到DOS搜索路径:
(最背的情况下,假如你没有管理员权限,像本人所在的扣门公司,连程序员都没有自己电脑的管理员权限,没权限安装软件,只能用绿色非安装版的)
DOS命令(rem # 开头的行不用输入) :
rem #----- 在[c:\nodejs-v12] 资源浏览器地址栏输入 cmd, 回车,相当于
rem #----- win+R 键,在运行中输入 cmd,然后跳转到[c:\nodejs-v12]
C:
CD "c:\nodejs-v12"
SET PATH_TMP=%PATH%
SETX PATH "%CD%;%PATH_TMP%"
rem #---- 显示PATH环境变量
ECHO %PATH%
PAUSE
EXIT
rem #==== 本节DOS结束。
上面的命令会把系统变量PATH加到个人变量PATH中,不太好。而且变量太多时会出现:
“警告: 正保存的数据被裁断到 1024 字符。”
建议用DOS命令:rundll32.exe sysdm.cpl,EditEnvironmentVariables 来设置,
上面这个命令打开设置界面,手工设置用户的环境变量。

再次打开DOS命令窗口,显示 nodejs 版本:
rem #---- 实际执行的是 node.exe -v:
node -v
rem #====
能显示 node 版本信息,表示node环境设置成功。
二、安装CNPM(在国内或本人所在的扣门公司网络下,不容易访问国外网站,要用国内的镜像站):
rem #----
CD "c:\nodejs-v12"
npm install -g cnpm --registry=
rem # 去你的BD,上面 registry=后面是一个网址,保存后不见了。
rem # 请手工输入 [https] 加 [://] 加 [registry.npm.taobao.org]
rem #====
检查CNPM版本:
rem #----
cnpm -v
rem #====
三、安装@vue/cli :
rem #----
cnpm install @vue/cli -g
rem #====
注意:虽然说i与install等效,若用这样的命令:cnpm i @vue/cli -g 安装,
后面会出现问题,当创建vue-cli项目时(npm init webpack myvueproject)会显示错误:
----
npx: installed 1 in 3.048s
command not found: create-webpack
====
四、安装 @vue/cli-init :
rem #----
cnpm install -g @vue/cli-init
rem #====
检查vue版本 (注意参数是大写的 -V):
rem #----
vue -V
rem #====
若显示信息表示安装成功,如:
----
@vue/cli 4.2.3
====
最后补充:若操作不成功,需要新建一个目录,重新安装上述内容。
尤其是第三、第四步,若中间过程出现红色错误信息,可能是网络不好造成。
正常情况是不会出错的。
吐一下槽,操作卖白粉的心,赚着卖白菜的钱。

阅读全文

与nodejszip相关的资料

热点内容
奥维地图怎么设置网络叠加 浏览:407
linux加载库文件so失败 浏览:714
大家都想要的app 浏览:58
程序员比特币 浏览:568
mysqlfrm是什么文件 浏览:665
win10点击文件夹声音消失 浏览:963
苹果手机空白文件名 浏览:833
linuxmv覆盖合并文件夹 浏览:932
不开访客网络怎么联网 浏览:631
win10的软件卸载 浏览:779
crv汽车自带网络怎么打开 浏览:973
食品原材料到什么网站购买 浏览:649
一年级的小孩子学编程怎么样 浏览:863
ic考勤机怎么导出数据 浏览:922
网站设计编程如何开始学习 浏览:749
淘宝代码隐藏导航不见了 浏览:7
macbookpro如何修改文件内容 浏览:965
java稳定排序 浏览:53
oppo文件管理的图片 浏览:335
plc编程步数怎么计算 浏览:142

友情链接