zoukankan      html  css  js  c++  java
  • Node.js创建第一个应用

    快速教程:https://www.runoob.com/nodejs/nodejs-http-server.html

    以下内容摘自《nodejs真的是单线程吗? 》https://segmentfault.com/a/1190000014926921

    • 其实只有js执行是单线程,I/O显然是其它线程。 js执行线程是单线程,把需要做的I/O交给libuv,自己马上返回做别的事情,然后libuv在指定的时刻回调就行了。
    • Node.js 通过 libuv 来处理与操作系统的交互,并且因此具备了异步、非阻塞、事件驱动的能力。因此,NodeJS能响应大量的并发请求。所以,NodeJS适合运用在高并发、I/O密集、少量业务逻辑的场景。
    • 如果操作系统本身就是单核,那也就算了,但现在大部分服务器都是多 CPU 或多核的,而 Node.js 只有一个 EventLoop,也就是只占用一个 CPU 内核,当 Node.js 被CPU 密集型任务占用,导致其他任务被阻塞时,却还有 CPU 内核处于闲置状态,造成资源浪费。 其实虽然Node.js可以处理数以千记的并发,但是一个Node.js进程在某一时刻其实只是在处理一个请求。 因此,Node.js 并不适合 CPU 密集型任务。

    使用淘宝 NPM 镜像

    npm install -g cnpm --registry=https://registry.npmmirror.com

    之后用cnpm取代npm,例如cnpm init等。

    或者直接设置淘宝镜像

    npm config set registry https://registry.npm.taobao.org

    Node.js创建第一个应用

    创建hello.js如下:

    let http = require("http"); 
    // 第一行请求(require)Node.js 自带的 http 模块,并且把它赋值给 http 变量。
    
    http.createServer((req, resp) => {
        resp.writeHead(200, {'Content-Type': 'text/plain'});
        resp.end('Hello World\n');
    }).listen(8888);
    
    console.log('Server running at http://127.0.0.1:8888/');

    执行:node hello.js

    打开浏览器访问 http://127.0.0.1:8888/,你会看到一个写着 "Hello World"的网页。

    Node.js 回调函数

    用非阻塞代码读文件

    let fs = require("fs");
    
    // 回调函数一般作为函数的最后一个参数出现
    fs.readFile('input.txt', (err, data) => {
        if (err) return console.error(err);
        console.log(data.toString());
    });
    
    console.log("程序执行结束! // 这条会先输出,然后才是文件内容");

    Node.js简易HTTP服务器

    https://www.npmjs.com/package/http-server

    npm install --global http-server

    如果是在项目里面使用,则采用局部安装

    按照好后在对应的html页面下执行:

    http-server

    既可运行一个简易的HTTP服务器,通过http://localhost:8080/访问页面。

  • 相关阅读:
    tcl基本语法
    linux hostid与lmhostid
    linux下uptime命令
    介绍一下 WebApplicationContext?
    Spring 由哪些模块组成?
    怎样开启注解装配?
    解释不同方式的自动装配 ?
    @Qualifier 注解有什么用?
    解释 Spring 框架中 bean 的生命周期?
    如何在 spring 中启动注解装配?
  • 原文地址:https://www.cnblogs.com/xkxf/p/15520708.html
Copyright © 2011-2022 走看看