1.引入核心模块

2.服务器监听窗口

3.创建服务器对象

4.设置服务器监听窗口

寻找路径

 // 引入核心模块
const http = require('http') // 服务器监听窗口
const port =3000;
// const port =process.argv[2];
// console.log(process.argv)
// 创建服务器对象
const serve = http.createServer((req,res)=>{
let fileName=''; if(req.url==='/'){
fileName='/public/index.html'
}else{
fileName='/public'+req.url;
}
console.log(fileName);
res.end(fileName)
})
// 设置服务器监听窗口
serve.listen(port,()=>{
console.log(`serve runnint at http://localhost${port}`)
})

全局变量

以下几个变量虽然看起来是全局的,但其实并不是,它们仅存在于模块范围内。

  • require(),模块作用域中的全局方法,用于导入其他模块
  • module,表示当前模块
  • exports,module.exports属性的别名,用于导出模块成员
  • __dirname,表示当前文件所在的目录
  • __filename,表示当前文件的名称(名称前面具有完整的路径)

 // 引入核心模块
const http = require('http')
const path = require('path')
// 服务器监听窗口
const port =3000; // 创建服务器对象
const serve = http.createServer((req,res)=>{
let fileName=''; if(req.url==='/'){
fileName='/public/index.html'
}else{
fileName='/public'+req.url;
}
// console.log(fileName);
// 根目录 res.end(path.join(__dirname,fileName))
// res.end(__dirname+fileName)
})
// 设置服务器监听窗口
serve.listen(port,()=>{
console.log(`serve runnint at http://localhost${port}`)
})

读取文件

 // 引入核心模块
const http = require('http')
const path = require('path')
const fs = require('fs')
// 服务器监听窗口
const port =3000; // 创建服务器对象
const serve = http.createServer((req,res)=>{
let fileName=''; if(req.url==='/'){
fileName='/public/index.html'
}else{
fileName='/public'+req.url;
}
// console.log(fileName);
// 根目录 // res.end(path.join(__dirname,fileName))
// res.end(__dirname+fileName) // 读取文件
fs.readFile((__dirname+fileName), 'utf8',(err,data)=>{
// fs.readFile((__dirname+fileName),{encoding: 'utf8', flag: 'r'},(err,data)=>{
if(err){
res.statusCode=404;
res.statusMessage='not Found';
res.setHeader('content-Type','text/html;charset=utf-8')
res.end('这里什么都没有')
}else{
res.statusCode=200;
res.statusMessage='ok';
res.setHeader('content-Type','text/html;charset=utf-8')
res.end(data)
}
})
})
// 设置服务器监听窗口
serve.listen(port,()=>{
console.log(`serve runnint at http://localhost${port}`)
})

在package.json文件配置命令

当我们要执行的命令比较复杂时,可以将该命名配置到package.json文件中scripts字段中,并为该命令指定一个别名;

  "scripts": {
"serve": "node server.js"
},

上面的代码为 node server.js指定了一个别名serve,然后我们可以通过npm的子命令run去执行该命令:

npm run serve

如果命令的别为start,则执行时可以省略子命令run

 "scripts": {
"start": "node server.js",
},
npm start

nodejs编写后台的更多相关文章

  1. nodejs 编写(添加时间戳)命令行工具 timestamp

    Nodejs除了编写服务器端程序还可以编写命令行工具,如gulp.js就是Nodejs编写的. 接下来我们来实现一个添加时间戳的命令: $ timestamp action https://www.n ...

  2. 步步为营-73-asp.net的简单练习(根据美工提供静态页面,编写后台代码)

    说明:实际企业中开发分工是很明确,往往程序员根据美工提供的UI界面进行后台代码的编写. 1.1 原始HTML页面 1.2 使用aspx进行修改 这里使用到了三层架构 using System; usi ...

  3. Delphi编写后台监控软件

    Delphi编写后台监控软件         文章来源:Delphi程序员之家     后台监控软件,为了达到隐蔽监控的目的,应该满足正常运行时,不显示在任务栏上,在按Ctrl+Alt+Del出现的任 ...

  4. 【MEVN架构】mongodb+ express + vue + nodejs 搭建后台

    前端技术栈:vue2 + vuex + vue-router + webpack + ES6/7 + less + element-ui 服务端技术栈:nodejs + express + mongo ...

  5. forever让nodejs应用后台执行

    nodejs一般是当成一条用户命令执行的,当用户断开客户连接,运用也就停了,很烦人.如何让nodejs应用当成服务,在后台执行呢? 最简单的办法: $ nohup node app.js & ...

  6. nodejs 做后台的一个完整业务整理

    大家知道js现在不仅仅可以写前端界面而且可以写后端的业务了,这样js就可以写一个全栈的项目.这里介绍一个nodejs + express + mongodb + bootstap 的全栈项目. 1.安 ...

  7. nodeJs编写的简单服务器

    一.简单的nodeJs写的 http 服务器 1.先Hello world,创建最简单的 Node 服务器(server.js) var http = require("http" ...

  8. Nodejs以后台服务启动

    1: 从网上查找  LINUX中我们可以使用这种简单的方式让node.js在后台运行: nohup node your_app.js & 经多次实验一直没有成功   2:使用 forever ...

  9. [转]forever: 让nodejs应用后台执行

    在LINUX中我们可以使用这种简单的方式让node.js在后台运行: nohup node your_app.js & forever可以让我们做得更好,并且可以跨平台的在windows和Li ...

随机推荐

  1. Mysql基于Mysql Cluster+MysqlRouter的集群部署方案

    http://note.youdao.com/noteshare?id=a61c4a6ff2b76e5305430eb66eb116e2&sub=4B4B6E8D0E2849F9B0DFB67 ...

  2. C#基础——break ,continue, return用法

  3. k8s~k8s里的服务Service

    k8s用命名空间namespace把资源进行隔离,默认情况下,相同的命名空间里的服务可以相互通讯,反之进行隔离. 服务Service 1.1 Service Kubernetes中一个应用服务会有一个 ...

  4. Android高斯模糊实现方案

    1.使用Glide Glide.with(this) .load(service.getImageUri()) .dontAnimate() .error(R.drawable.error_img) ...

  5. 更改Android设备System目录的文件的写入权限

    有时候我们需要修改/system目录中文件的权限,比如将该目录下的脚本设置写入权限等,但该目录默认只有read权限,此时应该怎么办? 1.安卓设备请确保root;2.连接安卓设备,确保安卓设备打开了“ ...

  6. 阿里巴巴供应链平台事业部2020届秋招-Java工程师

    阿里巴巴供应链平台事业部,2020届秋季校园招聘开始啦!Java开发工程师虚位以待,机会难得,占坑抓紧. 入职就发师兄,一对一师兄辅导. 在这里,你将有机会接触阿里集团的所有数据库.中间件等基础设施. ...

  7. Nacos 集群部署

    关于nacos 集群部署,网上的示例往往不全或不可用,而官方的教程太简单了.官方也提供了一个 docker  + nacos 的伪集群的 部署示例.但毕竟是 伪, 不能实际生产使用. 全网就几乎就没有 ...

  8. WebMvcConfigurationSupport 避坑指南

    通过返回WebMvcConfigurationSupport 的方式, 默认会覆盖 Spring boot的自动配置, 导致配置失效静态资源无法访问:但是在WebMvcConfigurationadp ...

  9. C#构造方法(构造函数)

    构造方法特点: 一 ,与类同名 public class Product { public int ID { get; set; } public String NAME { get; set; } ...

  10. Hadoop生态体系组件

    目录: 一.本地数据集上传到数据仓库Hive 二.Hive的基本操作 三.Hive.Mysql.HBase数据互导 正文: 一.本地数据集上传到数据仓库Hive 1.实验数据集的下载 2.数据集的预处 ...