Node.js开发日志
发布日期:2021-08-20 07:55:07 浏览次数:1 分类:技术文章

本文共 1663 字,大约阅读时间需要 5 分钟。

hot3.png

找一份好的教材:  

它太棒了,通俗易懂,不过我还是把他按我的理解记录,也许比原来更好理解,也许相反。
1.得先会helloworld,准备运行环境,安装node.js,参考
运行第一个nodejs程序

//helloworld.jsconsole.log("Hello World");
在终端,运行node helloworld.js
我们知道这是在服务器段运行的模式,这可不是nodejs的初衷,我们要如何才能用http的模式运行呢?

2.搭建简单的WEB SERVER(server.js)

//server.js   //nodejs内置的require模块var http = require("http");//调用createServer方法http.createServer(function(request, response) {    response.writeHead(200, {"Content-Type": "text/plain"});    response.write("Hello World");    response.end();}).listen(8888);
先启动Web服务器(看起来有点像):node server.js
这样当前服务器的8888端口被监听了
当在Browser中访问: http://localhost:8888
即产生请求,那就会被回应(response):Hello World
如何,简单的WEB Server建立起来了,似乎可以处理任何请求,不过你等到的都是“Hello World”;
当然为了解决这个问题,我们需要处理更多的功能,在进入前,我们先来了解一下nodejs关于模块的定义。
3.为了代码模块化,我们需要会建立自定义的nodejs模块
我们来稍微加点东西:exports
//server.jsvar http = require("http");function start() {  function onRequest(request, response) {    console.log("Request received.");    response.writeHead(200, {"Content-Type": "text/plain"});    response.write("Hello World");    response.end();  }  http.createServer(onRequest).listen(8888);  console.log("Server has started.");}exports.start = start;
然后我们可以这样在另一个JS文件中当作模块一样所以他们:
//index.jsvar server = require("./server");server.start();

这就是模块的定义与引用,我们将index.js与server.js关联起来了,模块的可爱模样应用初现身影。

我们也为开发更多的功能做好了最基本的准备。
接下来我们要将我们的WEB Server打扮得更像一些。
我们来一个假设,如果你的每次请求都得到“hello world",你可能会认为那是个疯子,应该是不同的请求有不同的回应,这是最基本的。
所以,我们需要在服务端将不同的请求进行不同的处理---我们加入路由功能
当然,我们需要使用上面刚学到的技巧:使用自定义模块的形式来组织代码文件

//router.jsfunction route(pathname) {  console.log("About to route a request for " + pathname);}exports.route = route;
可以看出,他什么都没有做,除了log一段信息之外。

转载于:https://my.oschina.net/raydchang/blog/145774

转载地址:https://blog.csdn.net/weixin_33672109/article/details/92067611 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:给定大小区域,背景图片不变形处理
下一篇:试用PostgreSQL+psycopg2+SQLAlchemy

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月24日 09时58分24秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

spring boot 与 Ant Design of Vue 实现删除用户(三十) 2019-04-27
spring boot 与 Ant Design of Vue 鉴权体系登录的实现(三十一) 2019-04-27
spring boot 与 Ant Design of Vue 鉴权体系获取用户信息的实现(三十二) 2019-04-27
Druid连接池实现自定义场景的多数据库的连接 2019-04-27
CentOs7命令行(静默)的方式安装oracle数据库 2019-04-27
基于VMware安装CentOs7的镜像 2019-04-27
PL/SQL数据库管理工具的使用 2019-04-27
史上最简单的spring-boot集成websocket的实现方式 2019-04-27
带你玩转属于自己的spring-boot-starter系列(一) 2019-04-27
带你玩转属于自己自己的spring-boot-starter系列(二) 2019-04-27
带你玩转属于自己的spring-boot-starter系列(三) 2019-04-27
基于SnowFlake算法如何让分库分表中不同的ID落在同一个库的算法的实现 2019-04-27
基于springboot的ShardingSphere5.X的分库分表的解决方案之分库解决方案(二) 2019-04-27
基于springboot的ShardingSphere5.X的分库分表的解决方案之分表解决方案(一) 2019-04-27
基于springboot的ShardingSphere5.X的分库分表的解决方案之关联查询解决方案(三) 2019-04-27
基于springboot的ShardingSphere5.X的分库分表的解决方案之基于seata的分布式事务的解决方案(十五) 2019-04-27
Linux文件管理参考 2019-04-27
FTP文件管理项目(本地云)项目日报(一) 2019-04-27
FTP文件管理项目(本地云)项目日报(二) 2019-04-27
FTP文件管理项目(本地云)项目日报(三) 2019-04-27