79 Secure your projects with HTTPS Express

  • 生成SSL证书
  1. openssl genrsa -out privkey.pem 1023
  2. openssl req -new -key privkey.pem -out certreq.csr
  3. openssl x509 -req -days 3650 -in certreq.csr -signkey privkey.pem -out newcert.pem
  • 基本服务器
  1. var fs = require('fs');
  2. var https = require('https');
  3. var express = require('express');
  4. var app = express();
  5. var options = {
  6. key: fs.readFileSync('privkey.pem').toString(),
  7. cert: fs.readFileSync('newcert.pem').toString()
  8. };
  9. https.createServer(options, app).listen(8080);
  10. app.get('*', function (req, res) {
  11. res.end('START HTTPS');
  12. });

81 Develop for multiple platforms

  • 不同平台的文件路径连接符号
  1. var path = require('path');
  2. path.sep;
  • 判断平台
  1. process.platform
  2. //darwin, win32

83 Run command line scripts Unix like

  • 运行node脚本
  1. //hello
  2. #!/usr/bin/env node // 正常情况下可以改成#!usr/local/bin/node
  3. console.log('hello');
  4. //权限
  5. chmod 755 hello //0755 = User:rwx Group:r-x World:r-x
  6. //运行
  7. ./hello

86 Understand the basics of stdin stdout

  • 输入输出流
  1. //sdin, stdout, stderr
  2. //将输入字符串md5加密后输出
  3. var crypto = require('crypto');
  4. process.stdout.write('> ');
  5. process.stdin.setEncoding('utf8');
  6. process.stdin.on('data', function (data) {
  7. if(data && data === 'q\n') {
  8. process.stdin.pause();
  9. } else if(data) {
  10. var h = crypto.createHash('md5');
  11. var s = h.update(data).digest('hex');
  12. console.log(s);
  13. process.stdout.write('> ');
  14. }
  15. });

87 Launch processes with the exec function

  • child_process.exec
  1. var exec = require('child_process').exec;
  2. if(process.argv.length !== 3) {
  3. console.log('not sopport');
  4. process.exit(-1);
  5. }
  6. var cmd = process.platform === 'win32' ? 'type' : 'cat'; //注意不同平台
  7. exec(cmd + ' ' + process.argv[2], function (err, stdout, stderr) {
  8. if(err) return console.log(err);
  9. console.log(stdout.toString('utf8'));
  10. console.log(stderr.toString('utf8'));
  11. });

其他

nodejs review-04的更多相关文章

  1. nodejs复习04

    TCP/UDP网络应用 创建TCP服务器客户端 socket套接字对象实例,是对TCP协议的一个基本封装接口 clientt套接字对象实例 //server.js var net = require( ...

  2. nodeJs学习-04 POST数据请求,分段发送,分段接收

    const http = require("http"); const querystring= require('querystring'); http.createServer ...

  3. 在虚拟机中安装Ubuntu Server 15.04

    学Linux,上红联! 红联Linux门户|Linux通用技术|Linux发行版技术|Linux企业应用|Linux实验室|红联Linux论坛 Linux系统教程 Linux入门 Linux管理 Li ...

  4. NodeJS错误处理最佳实践

    NodeJS的错误处理让人痛苦,在很长的一段时间里,大量的错误被放任不管.但是要想建立一个健壮的Node.js程序就必须正确的处理这些错误,而且这并不难学.如果你实在没有耐心,那就直接绕过长篇大论跳到 ...

  5. 如何提高NodeJS程序的运行的稳定性

    如何提高NodeJS程序运行的稳定性 我们常通过node app.js方式运行nodejs程序,但总有一些异常或错误导致程序运行停止退出.如何保证node程序的稳定运行? 下面是一些可以考虑的方案: ...

  6. Ubuntu Server16.04 安装Odoo11

    odoo11采用了python3实现的. 1.sudo adduser odoo   //新建一个用户odoo 2.给odoo 用户root 权限 visudo   //使用visudo 编辑 /et ...

  7. [Java 教程 04] Java基础语法

    在上一篇文章中我们已经运行了个简单的java程序,但是没有给大家讲解代码部分的内容与含义.学习,我们要做到知其然而知其所以然,所以本篇文章我们就来讲解java程序的基本语法,学完这篇文章你再回头看上篇 ...

  8. qnx gpio

    in order to set gpio in qnx, you can use msmgpiotool # msmgpiotool gpiotool usage: gpiotool <comm ...

  9. [Intel Edison开发板] 04、Edison开发基于nodejs和redis的服务器搭建

    一.前言 intel-iot-examples-datastore 是Intel提供用于所有Edison开发板联网存储DEMO所需要的服务器工程.该工程是基于nodejs和redis写成的一个简单的工 ...

  10. Angularjs学习---angularjs环境搭建,ubuntu 12.04下安装nodejs、npm和karma

    1.下载angularjs 进入其官网下载:https://angularjs.org/‎,建议下载最新版的:https://ajax.googleapis.com/ajax/libs/angular ...

随机推荐

  1. Formal Definitions Using ASN.1 - SNMP Tutorial

    30.7 Formal Definitions Using ASN.1 The SMI standard specifies that all MIB variables must be define ...

  2. 创建文本注记TextElement

    1.创建一个字体 /// <summary> /// 字体设置 /// </summary> /// <param name="size">Th ...

  3. asp rs开启关闭问题

    使用rs.close关闭后,可以直接用rs.open来打开数据表:如果用了set rs = nothing 从内存中清除rs对象,再次加载rs对象就需要使用set rs=server.createob ...

  4. 添加删除表格append或 createElement

    方法一: js代码:增加一行五列的表格 function AddList(){ $len= document.getElementsByName('goods_name[]').length; obj ...

  5. 浅谈Android中Activity的生命周期

    引言 我想对于Android开发人员来说,Activity是再熟悉不过了,今天我们就来探讨下Activity的生命周期.熟悉的掌握Activity对于开发健壮的Android应用程序来说至关重要.下面 ...

  6. [Head First设计模式]生活中学设计模式——外观模式

    系列文章 [Head First设计模式]山西面馆中的设计模式——装饰者模式 [Head First设计模式]山西面馆中的设计模式——观察者模式 [Head First设计模式]山西面馆中的设计模式— ...

  7. 脑筋急转弯——Google 面试

    1. 村子里有100对夫妻,其中每个丈夫都瞒着自己的妻子偷情...村里的每个妻子都能立即发现除自己丈夫之外的其他男人是否偷情,唯独不知道她自己的丈夫到底有没有偷情.村里的规矩不容忍通奸.任何一个妻子, ...

  8. arguments 对象的老历史

    引题:为什么 JavaScript 中的 arguments 对象不是数组 http://www.zhihu.com/question/50803453 JavaScript 1.0 1995 年, ...

  9. Android开发-取消程序标题栏或自定义标题栏

    注:本文由Colin撰写,版权所有!转载请注明原文地址,谢谢合作! 在Android开发中,跟据需要我们有时候需要自定义应用程序的标题栏或者取消程序的标题栏,下面本菜鸟在此记录与分享一下自己使用的方法 ...

  10. Linux下提示 bash: xxx command not found

    今天在虚拟机上安装了CentOS5.5,发现运行一些很正常的诸如:init,shutdown,fdisk 等命令时,悍然提示: bash: xxx command not found. 那么,首先就要 ...