Node.js学习笔记-01

小弟刚从大学毕业、当兵退伍后,目前决定找寻网页开发相关工作,除了实务开发外希望理论能够扎实完备,以防面试一问三不知(现在就是这个状况Orz)。如果各位读者有看到觉得不对、错误的地方欢迎指正,谢谢大家指教! :-)

伺服器端与用户端app

伺服器端app(Server-side rendering): SSR,指的是网页应用程式中的网页由伺服器算绘后再送到用户端的浏览器。

用户端app(client-side rendering): CSR,通常用户端app被称为单页app(SPA),伺服器发给浏览器一次包裹含有(HTML、CSS、JavaScript、静态资源)后,接下来介面的更换是利用JavaScript来动态修改DOM,不需要依靠伺服器显示新网页。

伺服器端app与用户端app之间有一些模糊的界线,用户端app很难只靠一次伺服器请求将全部需要的资源都拿到,有需要的时候仍需要向伺服器发出请求。

什么是Express?

Express是一种Node.js web app框架,为web和行动app提供稳健的功能组,具备极简、灵活、快速的特质。
Express做的事情其实很简单,用户端向伺服器发出HTTP请求后,Express要决定该如何回应(利用请求、回应物件、中介软体)。
另外Express不会管你做的是SSR还是SPA,它可以作为伺服器算绘直接回传到浏览器,也能作为API替SPA提供需要的资料。

请求与回应物件

用Express建构web伺服器时,事情几乎都是起于请求物件,终于回应物件。

URL的各个部份

协定 : https://          
主机名称 : google.com 、localhost、 www.bing.com
连接埠 : 3000 
路径 : /about、/home
查询字串 : ?quantity=2&price=1000
片段识别符号 : #history

HTTP请求方法

HTTP协定定义了一套请求方法(POST、GET、DELETE、PATCH...等),可让用户端与伺服器进行沟通,当你在浏览器输入URL时,浏览器就会发出一个GET请求给伺服器。而我们的app根据请求方法、URL及其查询字串进来决定该如何回应。平常都是使用GET与POST(处理表单、资讯回传),但是也可以向API发出DELETE、PATCH等请求,用于删除及更新资料。

请求物件
请求处理式的第一个参数(通常被取名为req)。是核心的Node物件。

请求物件有许多实用的属性与方法包括 : 
req.params : 含有具名路由参数的阵列。
req.query : 一种物件,含有查询字串参数(名称、值)。
req.body : 使用者发出POST请求后,附带的资料会被放在body物件中,必须使用可以解析内文内容类型的中介函式才能使用。
req.cookies : 有用户端传来的cookie值。
req.headers : 从用户端收到的请求标头。

回应物件
请求处理式的第二个参数(通常被取名为res)。也是核心的Node物件。

res.status(code) : 设定HTTP状态码。预设值是200(OK),另外还有404(Not Found)、500(Server Error)...等。值得注意的一点是,status可回传回应物件,可以在status后面接上send()。
res.cookie(name, value, [options]) : 设定存放在用户端的cookie。
res.redirect([status], url) : 转址浏览器,预设的转址码是302。尽量减少转址的次数。
res.send(body) : 传送回应给用户端,预设的内容类型是text/html。
res.json(json) : 将json送给用户端。
res.format(object) : 根据Accept请求标头传送不同的内容。
res.locals : 是一个包含算绘view的预设背景的物件。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章