美文网首页
node.js 入门(低阶版)

node.js 入门(低阶版)

作者: Gantowell | 来源:发表于2018-08-29 11:34 被阅读0次

    前言:


    一、什么是node.js?

    Node.js 是建立在chrome的JavaScript的web应用框架

    二、node.js有什么优点?

    比较一下node.js和传统web服务器的request-response流程:

    PHP&ASP:
    • 发送请求
    • 等待服务端解析请求
    • 返回响应
    • 准备下一个请求
    Node.js
    • 发送请求
    • 准备下一个请求
    • 当服务端处理好请求,返回响应
    作为一个单线程,非阻塞,异步编程的框架,它高度可扩展,比传统服务器请求的服务数量大得多。
    三、node.js中basic knowledge
    • npm
      节点程序包管理器,类似python的pip,可以通过该指令安装所需包
      npm install package
      相应的卸载命令
      npm uninstall package
      通过该指令安装的包会在当前目录下生成一个node_modules文件夹,所有安装的包都在该目录下

    • REPL
      一个类似shell的东西,可以运行 读取,计算,打印,循环 的环境

    • Package.json
      存在于任何Node应用程序/模块的根目录,并应用于定义一个包的属性,具有下列属性:name/ version/ description/ homepage/ author/ contributors/keywords

    dependencies: 依赖列表,支持该包所需的包全部列在这
    repository: 包的储存类型和URL
    main: 包的入口点


    从简单入手:


    假设你有一台主机,并且已经成功按照https://nodejs.org完成了node的安装
    你在某目录下新建了一个文件夹,然后又在该文件夹新建了一个js文件,输入了以下代码

    var http = require('http');
    
    http.createServer(function (req, res) {
        res.writeHead(200, {'Content-Type': 'text/html'});
        res.end('Hello World!');
    }).listen(8080);
    
    • var http = require('http')
      这个第一行的var http = require('http')类似于python的import numpy as np, 通过require来导入所需包,并且赋给变量http,之后通过http来使用包内的相关函数,这一刻我又想起了被np支配的恐惧。

    • http.createServer(function (req, res) {})
      通过http的函数createServer函数来创建一个HTTP服务器,req,res顾名思义request and response,res.writeHead(200, {'Content-Type': 'text/html'}):当开启一个服务器后,这个服务器干了什么呢,res等于response,服务器给了反应,它写了个header,然后给了个res.end('Hello World!');,相当于写了个hello world给你,就结束了。listen(8080);意思是听8080端口,可以任意使用现在没在用的端口。

    好了,接下来就是运行了,假设你的js文件名为 a.js, 打开终端输入node a.js, 你就能看到终端显示....不,终端什么也没显示,这个时候你打开浏览器,输入localhost:8080,就能看到页面上写着 Hello World!,你在该js里文件添加任何console.log()语句,都能在控制台看到输出。我们将上述js代码添加一句
    console.log("HTTP Server now is listening on port 8080");
    你就能看到终端提示一模一样的话了。


    包包包:

    了解python,或者c++的人都知道,一个main函数写不了什么东西,我们把需要的部分都写在其他文件里,然后主函数需要什么我们就把该文件引用进来就可以使用。

    A.py
    def functionA():
      return 10
    
    B.py
    from A import functionA
    print(functionA())
    
    >>>python B.py
    >>>10
    

    在B中导入A,便可以使用A的函数了
    同理在node.js中,我们也可以把写好的js文件封装成一个包,在其他文件中require这个包。
    还是刚才那个工程,我们创建一个新的js文件,就叫它b.js,我们在文件里写入

    exports.myDateTime = function () {
        return Date();
    };
    

    然后在a.js中require这个文件

    var http = require('http');
    var dt = require('./b');
    
    http.createServer(function (req, res) {
        res.writeHead(200, {'Content-Type': 'text/html'});
        res.write("The date and time are currently: " + dt.myDateTime());
        res.end();
    }).listen(8080);
    

    再运行a.js文件,便能看见页面显示时间,这个时间就是从b.js获取到的。

    相关文章

      网友评论

          本文标题:node.js 入门(低阶版)

          本文链接:https://www.haomeiwen.com/subject/indhwftx.html