喵宅苑 MewoGarden × 技术宅社区II | Z站 Z Station 棒棒哒纯文字二次元技术社区

正文

nodeJS|开发入门

作者:math1as
从自己博客搬运的一些自己写的东西 ================================================= 简单的说 Node.js 就是运行在服务端的 JavaScript 它基于google v8引擎,而且相比起php等语言来说,它自带了web service的功能(无需nginx,apache) 那么这里为了用起来顺手一点直接win下从官网download了node.exe 然后配置了path环境变量 使用require函数来载入http模块。 并且创建一个http server [mw_shl_code=javascript,true] var http = require('http'); http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/html'}); response.end('<h1>Hello World</h1>\n'); }).listen(8888); console.log('Server running at [url]http://127.0.0.1:8888/'[/url]);[/mw_shl_code] 测试后it works. 在这里,匿名函数直接被当做一个参数传递给了createServer ================================================================================================ 事件驱动: nodeJS同时充当了web server和脚本 而请求是异步的,apache和nginx等会对每一个请求新建一个进程,来执行单独的php脚本 那么node如何办到呢? 我们给某个函数传递了一个参数,这个参数是一个匿名函数。 当发生一个事件(比如新的请求到达)时,使用回调的方法,来执行这个被传递的函数。 ================================================================================================ require函数可以加载一个内置模块,或者自己编写的js. 在加载自己编写的js时,请注意路径加上./ 作为当前目录 返回一个对象,可以调用其方法. 比如,我在server.js里编写了一个start方法。 在其尾部加入一行代码 exports.start = start; 用来导出模块 这样就可以在index中,实例化这个模块为一个对象,并调用其中的start函数 [mw_shl_code=javascript,true] var server = require("./server"); server.start();[/mw_shl_code]

回复

尘埃之里

作者:math1as
查看回复

好像可以用这个

作者:尘埃之里
好像可以用这个+hexo搭建博客。
查看回复

可以用这个再加

作者:尘埃之里
可以用这个再加git和npm做hexo。
查看回复

本帖最后由

作者:math1as
[i=s] 本帖最后由 math1as 于 2016-6-17 14:42 编辑 同时 中间调用了路由函数,来对用户提交的pathname进行匹配,返回其想要的数据 route.js是路由函数所在地 其中用一个handle数组来保存pathname对应的控制函数。 我们新的路由定义可以在这里进行添加。 那么检测存在与否直接用typeof就行了,如果没有的话是返回Null的。 [mw_shl_code=javascript,true] var showpage=require('./showpage'); var handle={}; handle['/']=showpage.home; handle['/home']=showpage.home; handle['/blog']=showpage.blog; function route(pathname) //路由函数,接受传递入的参数,并进行判断是否存在 { if(typeof(handle[pathname])==='function') { return handle[pathname](); //调用处理 } else { return("404 您的页面没有找到"); } } exports.route = route;[/mw_shl_code] 这样就大体实现了nodeJS的简单路由功能。
查看回复

本帖最后由

作者:math1as
[i=s] 本帖最后由 math1as 于 2016-6-17 14:42 编辑 简单的route功能: 由于nodeJS其实除了是脚本语言外,也直接充当了web server的角色。 所以我们可以直接在其中实现路由的功能。 在index.js中源码如下 [mw_shl_code=javascript,true] var server=require('./server'); var route=require('./route'); server.start(route.route); //这里是传递了route模块的一个导出函数(方法) [/mw_shl_code] 这里调用其他自写模块时,用使用模块名.方法来把它当做一个参数进行传递。 showpage.js中我们写入对传入pathname的处理函数 其实这就是MVC框架中的controller 我们在这里实现控制器的功能server.js则是核心,在这里用createSever方法来创建一个新的http server [mw_shl_code=javascript,true] var http = require('http'); var url = require('url'); //用于解析请求的文件名 var querystring = require('querystring'); //用于解析请求的参数 server.js则是核心,在这里用createSever方法来创建一个新的http server [mw_shl_code=javascript,true] var http = require('http'); var url = require('url'); //用于解析请求的文件名 var querystring = require('querystring'); //用于解析请求的参数 function start(route) { function server(request, response) { var pathname=url.parse(request.url).pathname; response.writeHead(200, {'Content-Type': 'text/html'}); var htm=route(pathname); //通过路由来获得源码 response.writ(htm); } http.createServer(server).listen(8888); } exports.start = start;[/mw_shl_code]
查看回复
上一页
下一页
0%
站点地图友情链接:
喵宅苑
喵空间社区程序
喵宅苑 静态版
宅喵RPG地图编辑器
络合兔
Lanzainc
技术宅
小五四博客
莉可POI
Mithril.js
枫の主题社
Project1
午后少年
机智库
七濑胡桃
xiuno
幻想の日常
魂研社
Nothentai
0xffff
欲望之花
泽泽社长
淀粉月刊
HAYOU