NodeJS学习一(创建启动服务)

1.安装模块

在一个父级以及父级以上非中文命名的文件夹新建一个文件夹,当做该博客项目目录(如果含有中文安装模块会报错),这里命名为blog文件夹,打开终端cd切换进入该文件夹运行命令:

npm init

根据提示输入相应的项目名称,项目名称后面的其他选项直接回车默认,最后在blog文件夹下生产一个package.json的文件

{ "name": "node_blog", "version": "1.0.0", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "description": "", "dependencies": { } }

该项目当前需要的模块有:

"body-parser": 解析post请求数据
"cookies": 读写cookie
"express": node.js Web应用框架,用于创建Web应用
"markdown": 解析语法生成模板
"mongoose": mongodb数据库操作
"swig": 模板解析引擎

目前用到的就这些,有其他需求后面可以再安装。

在blog文件夹下进入终端,安装这些模块:

npm install body-parser cookies express markdown mongoose swig

安装完成后会在blog下面生成node_modules文件用于存放这些模块,生成一个package-lock.json文件,同时packag.json文件也得到更新(package.json展示了模块的版本范文,而package-lock.json则说明具体安装的是哪些模块版本)

package.json如下:

{
  "name": "node_blog",
  "version": "1.0.0",
  "description": "nodejs开发",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "body-parser": "^1.19.0",
    "cookies": "^0.7.3",
    "express": "^4.17.1",
    "markdown": "^0.5.0",
    "mongoose": "^5.6.0",
    "swig": "^1.4.2"
  }
}

2.创建应用目录

db:数据存储目录

models:数据库模型文件目录

public:公共文件目录(js,css等)

routers:路由文件目录

node_modules:NodeJS第三方模块目录

shcemas:数据库结构文件目录

views:模板视图文件目录

app.js:应用启动文件入口

3.启动第一个服务

项目的入口文件为app.js,因此在app.js里面编辑代码创建服务,用到了express模块​​;

先加载express模块​​,然后创建app应用,并绑定一个路由用于展示页面,规定监听端口:

//应用程序的启动入口文件

//加载express模块
var express = require('express');
//创建app应用,相当于nodeJS的http.createService()
var app = express();

/**
 * [description] 给app绑定首页路由,把一个url路径通过一个或多个方法绑定
 * @param  {[type]} req       request对象,保存客户端请求相关的一些数据
 * @param  {[type]} res       response对象
 * @param  {[type]} next      函数,用于执行下一个和当前路径匹配的函数
 * @return {[type]}           [description]
 */
app.get('/',function(req,res,next){
	//res.send(string)发送内容直客户端
	res.send('<h1>欢迎来到我的博客!</h1>')
})

//监听http请求
app.listen(8081);

完成之后,在blog文件夹下打开终端,运行app.js,出现光标闪动

打开浏览器,输入localhost:8081:

即可看到效果

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Rust语言学习交流

Rust 1.39 正式发布

万众瞩目的 async/await 稳定了。async fn/async {}/ async move {} 都是可以的。

11920
来自专栏小石不识月_Leo

有道题,得细说

最近,在一次正式场合下,遇到了一道检验js相关原理的题目,当时虎躯一震,这不是送分儿咩?不由分说,大笔一挥,写完之后还骄傲的叉了会儿腰,大概是这样事儿的:

8520
来自专栏码匠的流水账

聊聊rocketmq的enableMsgTrace

rocketmq-client-4.5.2-sources.jar!/org/apache/rocketmq/client/producer/DefaultMQ...

10000
来自专栏web前端技术分享

深入浅出js实现继承的7种方式

  有些人认为JavaScript并不是真正的面向对象语言,在经典的面向对象语言中,您可能倾向于定义类对象,然后您可以简单地定义哪些类继承哪些类(参考C++ i...

11840
来自专栏编程创造城市

零基础学网页开发入门(制作博客案例)适应手机端div+css+js的综合介绍

html翻译一下:hype text mark language 超文本标记语言

8830
来自专栏web前端技术分享

ES6复制拷贝数组,对象,json数组

数组是复合的数据类型,直接复制的话,只是复制了指向底层数据结构的指针,而不是克隆一个全新的数组。

8930
来自专栏Jerry的SAP技术分享

介绍一种在ABAP内核态进行内表高效拷贝的方法,和对应的Java和JavaScript版本的伪实现

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

6330
来自专栏华章科技

​什么问题最让程序员头秃?我们分析了11种语言的11000个问题

我们选择了 11 种最流行的编程语言(以 Stack Overflow 标签的频率来衡量),并进行了一项研究,旨在揭示这些问题中的某些共性和差异。

7420
来自专栏华章科技

55款大数据分析神器:你还在用Excel?

来源:DataCastle数据城堡(ID:DataCastle2016)、大数据分析和人工智能(ID:datakong)

12440
来自专栏哎_小羊

Prometheus 通过 consul 实现自动服务发现

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

14430

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励