【Node.js入门】1.3 开始开发Node.js应用程序

1.3 开始开发Node.js应用程序

学习目标

(1)熟悉开发工具Visual Studio Code的基本使用;
(2)掌握Node.js应用程序的编写、运行和调试的基本方法。

构建第一个 Node.js应用程序

代码

const http = require("http");//导入http模块

const httpServer = http.createServer(function(req,res){
    //设置响应头信息Content-Type设置为"text/html",
    //这样浏览器就会将响应内容解析为HTML。
    res.writeHead(200,{'Content-Type' : 'text/html'});
    // 发送响应数据
    res.end("<h1>hello world !</h1>")
})

const port = 3000;
httpServer.listen(port,function(){
    //向终端输出如下信息
    console.log(`服务器,已启动: http://localhost:${port}`);
})

运行测试

在终端窗口中运行程序进行测试,并通过浏览器访问Web应用程序访问测试。
node运行hello world.js

运行 Node.js 程序

使用node命令运行Node.js程序

  • node命令语法
    node [Sections] [ -e script | script.js | - ] [arguments]
  • 运行当前目录下的index.js脚本文件,可以使用点号代替index.js: node . 相当于 node index.js
    在这里插入图片描述
  • 按下+组合键终止正在运行的Node.js程序。
  • 选项-e(–eval)表示直接执行某语句:
    node -e "console.log('Hello World!);"

使用npm命令运行Node.js程序

//test.js
console.log("test")
//demo.js
console.log("demo")
package.json
{
  "name": "ch02",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "node demo.js",
     "test": "node test.js"
  }
}

演示动图

在这里插入图片描述

使用nodemon热启动

什么是nodemon :nodemon是一个用于开发环境的Node.js应用程序的工具,它可以监视文件改动并自动重启Node.js程序 。

  • 安装该模块
    npm i nodemon -g
  • 监控并运行Node.js程序
    nodemon your-app.js

调试 Node.js 程序

使用日志工具进行调试

  • 使用console.log()方法检查变量或字符串的值,记录脚本调用的函数,或记录来自第三方服务的响应。
  • 使用console.warn()或console.error()方法记录警告或错误信息。

使用Node.js内置调试器

Node.js内置一个进程外的调试实用程序,可通过V8检查器和内置调试客户端访问。

第一步:需要先在代码中插入 debugger
debuggerDemo.js 示例

//debuggerDemo.js
global.x = 5;
setTimeout(() => {   //此处用到的回调函数的形式是箭头函数,() =>相当于function()
  debugger;
  console.log('world');
}, 1000);
console.log('hello');

第二步:执行node命令时加上inspect参数,指定要调试的脚本的路径。.
node inspect .\debuggerDemo.js
演示动图

在Visual Studio Code中调试Node.js程序

调试步骤
(1)设置调试配置文件。关键是设置program属性,使其指向要运行的脚本文件。
(2)设置断点。
(3)根据需要设置监视器。
(4)启动该脚本的调试。
Visual Studio Code中调试Node.js程序

调试器执行方式

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/126757.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端js实现将数组对象组装成自己需要的属性,或者去掉对象中不必要的属性

前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 需求&#xff1a;前端js实现将数组对象组装成自己需要的属性&#xff0c;或者前端js实现去掉对象中不必要的属性 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、示例数组对象…

浅谈多回路电表在荷兰光伏系统配电项目中的应用

1.背景信息 Background&#xff1a; 随着全球化石能源&#xff08;石油&#xff0c;煤炭&#xff09;越来越接近枯竭&#xff0c;污染日趋严重&#xff0c;气候日益变暖等问题&#xff0c;全球多个国家和地区相继出台了法规政策&#xff0c;推动了光伏产业的发展。但是现有的光…

vioovi的ECRS工时分析软件:食品加工行业的生产效率提升利器

在食品加工行业&#xff0c;提高生产效率、降低成本、优化资源配置是至关重要的。随着科技的不断发展&#xff0c;越来越多的企业开始借助先进的软件工具来助力生产管理。本文将介绍一款备受食品加工企业青睐的工业工程软件——vioovi的ECRS工时分析软件&#xff0c;并探讨其如…

PR如何开启GPU加速

1.首先在 NCIDIA控制面板 找到 管理3D设置 &#xff08;记得前提是你的显卡驱动程序是最新的或者已经安装了显卡驱动程序&#xff09; 2.在管理3D设置里面 找到程序设置 自定义程序&#xff1a; Adobe premiere 里面的 CUDA - GPUs 改成 使用全局设置 &#xff08;如果还有…

面试题:在 Java 中 new 一个对象的流程是怎样的?彻底被问懵了。。

文章目录 前言JVM内存JVM生成.class文件类加载器加载.class文件知识扩展&#xff1a;Class对象首先搞清楚 newInstance 两种方法区别&#xff1a; 连接和初始化创建实例 前言 对象怎么创建&#xff0c;这个太熟悉了&#xff0c;new一下(其实还有很多途径&#xff0c;比如反射、…

结合element的el-tooltip实现文本溢出进行省略,鼠标移入显示全部

结合element的el-tooltip实现文本溢出进行省略&#xff0c;鼠标移入则显示全部。如果没有出现省略&#xff0c;鼠标移入则不进行浮出显示。 多简单的一个功能&#xff0c;搜了一下其它人写的&#xff0c;写的简直是一言难尽。 <!--* 轮子的作者: 轮子哥* Date: 2023-08-29…

SAM + 用于文本到图像修复的稳定扩散

推荐基于稳定扩散(stable diffusion) AI 模型开发的自动纹理工具&#xff1a; DreamTexture.js自动纹理化开发包 - NSDT 什么是SAM&#xff1f; 今年早些时候&#xff0c;Meta AI 发布了新的开源项目&#xff1a;Segment Anything Model &#xff08;SAM&#xff09;&#xff…

day3 ARM

【昨日作业】 .text .global start _start: mov r0,#0 存放sum mov r1,#1 存放相加的数值 loop: cmp r1,#100 bhi wh add r0,r0,r1 add r1,r1,#1 b loop wh: b wh .end 【内存读写指令】 通过内存读写指令可以实现向内存中写入指定数据或者读取指定内存地址的数据 c语言内存…

MySQL最新2023年面试题及答案,汇总版(3)【MySQL最新2023年面试题及答案,汇总版-第三十三刊】

文章目录 MySQL最新2023年面试题及答案&#xff0c;汇总版(3)01、隔离级别与锁的关系&#xff1f;02、SQL 约束有哪几种呢&#xff1f;03、如何优化子查询&#xff1f;04、什么是前缀索引&#xff1f;05、MySQL5.6和MySQL5.7对索引做了哪些优化&#xff1f;06、MySQL有关权限的…

Linux学习第34天:Linux LCD 驱动实验(一):星星之火可以燎原

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 LCD显示屏是由一个一个的像素点构成的。当你能控制一个像素点的亮暗及颜色变化的时候&#xff0c;你就能让LCD显示瓶显示五颜六色的整幅图案。甚至可以让LCD屏幕…

Spring-Security前后端分离权限认证

前后端分离 一般来说&#xff0c;我们用SpringSecurity默认的话是前后端整在一起的&#xff0c;比如thymeleaf或者Freemarker&#xff0c;SpringSecurity还自带login登录页,还让你配置登出页,错误页。 但是现在前后端分离才是正道&#xff0c;前后端分离的话&#xff0c;那就…

Django快速入门(一)

Django三板斧 1. 基本使用 三板斧: HttpResponse,render,redirect from django.shortcuts import HttpResponse,render,redirect# 一. 返回字符串类型的数据 return HttpResponse(字符串) # 二. 返回HTML文件 # 1. 动态HTML页面: return render(request,login.html) def ab…

极智开发 | CUDA线程模型与全局索引计算方式

欢迎关注我的公众号 [极智视界],获取我的更多经验分享 大家好,我是极智视界,本文分享一下 CUDA线程全局索引计算方式。 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码和资源下载,链接:https://t.zsxq.com/0aiNxERDq CUDA 线程全局索引的计算,是很容…

图文加多个测试带你彻底搞懂Netty ChannelPipeline的执行顺序(附源码)

这里是weihubeats,觉得文章不错可以关注公众号小奏技术&#xff0c;文章首发。拒绝营销号&#xff0c;拒绝标题党 netty version 4.1.65.Final ChannelPipeline 是什么 Pipeline&#xff0c;管道、流水线&#xff0c;类似于责任链模式。基本上我们使用Netty开发程序需要编写…

Apache RocketMQ - 概述

2022年&#xff0c;RocketMQ 5.0的正式版发布&#xff0c;相比于4.0版本而言&#xff0c;架构走向云原生化&#xff0c;并且覆盖了更多的业务场景。 如何从互联网时代演进到云时代&#xff1f; 1. 消息队列演进史 操作系统、数据库、中间件是基础软件的三驾马车&#xff0c;…

Sketch是什么软件,如何收费和获得免费版

Sketch软件为设计师构建了一个优秀的本地Mac应用程序。Sketch是整个设计过程的平台&#xff0c;通过基于Web的工具共享工作&#xff0c;获取反馈&#xff0c;测试原型&#xff0c;并将其移交给任何浏览器。Sketch软件的定价根据不同的许可类型和订阅计划而变化。本文从Sketch软…

18. 深度学习 - 从零理解神经网络

文章目录 本文目标预测趋势与关系波士顿房价预测 Hi, 你好。我是茶桁。 我们终于又开启新的篇章了&#xff0c;从今天这节课开始&#xff0c;我们会花几节课来理解一下深度学习的相关知识&#xff0c;了解神经网络&#xff0c;多层神经网络相关知识。并且&#xff0c;我们会尝…

网络安全自学手册

想自学网络安全&#xff08;黑客技术&#xff09;首先你得了解什么是网络安全&#xff01;什么是黑客&#xff01; 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全…

No module named ‘importlib.metadata‘

解决办法 参考博客 https://wenku.csdn.net/answer/45a1563cc02e9592dd1d1d28fe7b88e7 pip install importlib_metadata

使用U盘安装ubuntu22操作教程

U盘启动 将烧录好的U盘&#xff0c;插上待安装系统的电脑 服务器在开机之后长按【ESC键】进入BIOS选项中&#xff0c;选择对应的U盘启动 如下图&#xff0c;在界面中“USB”选项就是我的U盘&#xff0c;第一启动项选择U盘启动&#xff0c;其他启动项不动&#xff0c;选择后按F…
最新文章