第一个nodejs应用

2023-11-18

应用这个词很火,哪里都在用。这里的nodejs应用其实是一个站点,准确的说是运行在本地的一个小小的Http站点。但是nodejs开发主要还是集中在少数的几个核心功能上,而不是那种动辄几千几万个文件,支撑多少并发多少功能的这种大型站点。所以nodejs开发的这些小型http站点也叫做应用。当然nodejs是可以做这种大型的站点的。

我们这里要做的示例应用主要是让刚接触的同学明白使用nodejs开发一个应用是多么的简单。

在开始以前首先看看我们的应用会有哪几部分:
* 引入模块,nodejs使用require关键字来引入一个模块。一个模块就是已经写好的一个或一组文件。通过require引入之后就可以直接在我们的文件中使用这个模块完成的功能。
* 创建一个server,这个server运行起来以后就可以响应用户的http请求,并把response发回给用户。
* 请求(request)和响应(response),上面说的server会接受用户的请求,看看用户需要什么。之后给予用户对应的响应。用户会在浏览器中看到响应内容。

创建nodejs应用

下面正式开始创建nodejs应用。一下代码会保存在一个index.js的文件中。

一、引入需要的模块

使用require关键字来引入http模块,同时把返回值赋值给http变量。

var http = require("http");

二、创建server

这一步创建一个可以响应用户请求的server,这个server监听3456端口:

var http = require("http");

http.createServer(function(request, response){
    // 1
    response.writeHead(200, {'Content-Type': 'text/plain'});
    // 2
    response.end('Hello World!');
}).listen(3456);
// 3
console.log("Server is running at http://localhost:3456");

下面分别解释一下:
1. 这一句是返回的HTTP头,HTTP Status: 200表示用户请求很成功,OK了。最常见到的是响应是HTTP Status 400,页面不存在。这就表示用户访问出错了。Content-Type:text/plain,表明返回的内容是文本。
2. 上面说明的语句是返回一个头,现在的语句是返回一个体(body)。这个的内容就是:”Hello World!”,全世界最著名的程序用文本内容。
3. 在Console里输入内容:“Server is running at http://localhost:3456”。
上面的代码就可以创建一个HTTP server,并可以监听用户在浏览器里发出的请求,发回响应内容。

运行HTTP server:

$node index.js

通过这个命令就可以运行起来server。同时你会看到有这样的输出:

Server is running at http://localhost:3456

三、测试

测试一下我们的server吧。打开浏览器,并在地址栏里输入* http://localhost:3456*,按下回车你就会看到结果了。

first app

YEAH,你的第一个nodejs应用已经运行起来了!

stay tuned to my next episode!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第一个nodejs应用 的相关文章

  • 服务器发现和监控引擎已弃用

    我在 Node js 应用程序中使用 Mongoose 这是我的配置 mongoose connect process env MONGO URI useNewUrlParser true useUnifiedTopology true u
  • 如何将 Angular Universal 应用程序部署到 Node.js 生产服务器?

    我有一个带有 Universal 的 Angular 8 应用程序 我想将其部署到共享 Web 主机生产服务器 我提前与网络主机核实过 他们告诉我可以在他们的共享网络托管上托管 Angular 通用网络应用程序 但是 无论我做什么 我都无法
  • 如何通过setTimeout函数定期打印数字?

    var i 0 function counter for i i lt 100 i setTimeout gt console log i 2000 counter 我想以 2 秒的间隔打印 i 但它立即打印 每次打印调用只需要几微秒 为什
  • Node.js 如何读取一个文件,然后使用两个单独的函数写入同一个文件?

    我想要做的是读取文件 然后在写入文件时能够使用该信息执行其他操作 例如 读取文件 写入文件并同时执行MD5哈希 数字签名等 我可以使用 fs readfile 和 fs writefile 作为一项操作 只需将文件从 Web 服务器复制到我
  • 为 MongoDB 中的对象数组建立索引

    我有一个巨大的电子邮件转储 我正在尝试在 MongoDB 中存储和查询它 有 160 万封电子邮件 每封电子邮件都存储为节点模块 https github com andris9 mailparser它将原始电子邮件解析为漂亮的 Javas
  • 无法根据TypeOrm中的外键过滤数据

    我使用 Nest Js PostgresQl 和 Typeorm 我在 typeorm 中有这两个实体 export class Meta PrimaryGeneratedColumn name metaId metaId number C
  • Strongloop 环回 如何使用路由进行静态服务?

    我想做类似的事情 server js app use client loopback static dirname client using middleware json 但该示例仅适用于根 files loopback static p
  • 无法从 bash 脚本使用 nvm

    我正在尝试编写一个 shell 脚本来自动设置我的开发环境 安装 python nvm node mongo 等 我正在使用 nvm 来安装 Node js 它告诉您关闭并重新打开终端以开始使用 nmv 命令 我尝试获取 bashrc 和
  • 如何使 fs.readFile 异步等待?

    我这里有这个 NodeJS 代码 它读取文件夹并处理文件 该代码有效 但它仍然是先打印所有文件名 然后只读取文件 如何获取一个文件 然后先读取该文件的内容 而不是先获取所有文件 async function readingDirectory
  • 如何在socket.io Nodejs服务器上列出房间

    在问题取得进展后如何创建socket io多播组 https stackoverflow com questions 6616922 how to create socket io multicast groups 6624604 6624
  • 如何使用 Node.js 解析 JSON? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我应该如何使用 Node js 解析 JSON 是否有一些模块可以安全地验证和解析 JSON 你可以简单地使用JSON parse h
  • 电子邮件模板中的剪贴板功能

    我想在电子邮件模板中发送优惠券代码 一个小按钮 用于复制剪贴板上输入元素的内容 通过电子邮件模板 我的意思是我想发送一封电子邮件 其中包含优惠券代码 并且电子邮件模板中会有一个按钮 允许我将其复制到剪贴板 这可以做到吗 任何帮助将不胜感激
  • 在 Node.js 中创建 JSON 数组

    我需要在用 Node js 编写的服务器中创建一个 JSON 字符串 以便在请求时发送到客户端 问题是这个 JSON 取决于服务器中的可用数据 因此 JSON 数组的大小并不总是相同 我已经尝试了一整天 但尽管我感觉很接近 但我仍然不明白
  • sails.js 水线嵌套填充查询

    我有一个返回对象的多个结果的查找查询 该对象包含一个包含另一个模型的模型 问题是水线不支持嵌套填充 因此它填充第一个模型 但不填充它的内部模型 我见过的所有示例都是针对 findOne 查询的 我正在寻找一种方法来解决返回多个结果的查找查询
  • 如何在nodejs中使用crypto.randomBytes使用async/await?

    const crypto require crypto async function getKey byteSize let key await crypto randomBytes byteSize return key async fu
  • 茉莉花节点没有输出

    我是 JavaScript Node js 和 jasmine 的新手 我正在尝试运行 Node Craftsman Book 一书中的测试 FilesizeWatcher 我创建了 package json 文件并运行 npm insta
  • Excel Add In - console.log 在哪里输出它的消息 - NodeJS

    我正在尝试使用 JavaScript API 创建 Excel 插件 但我不明白 console log 在哪里输出它们的消息 所有 Microsoft 文档都包含 console log 示例 但没有解释 console log 输出消息
  • 如何执行密集的 Node.js 计算

    我正在开发一个电子商务应用程序 每次产品从服务器发送到客户端时都必须重新计算产品的定价 每次发送多达数千个产品 计算部分本身相当密集 因为它需要多个数据库查询来计算 我的简单解决方案是将计算部分抽象到另一个专门用于计算的 Node js 应
  • 未处理的拒绝:发送后无法设置标头

    我正在 Dialogflow 中创建一个聊天机器人 当我尝试将数据添加到数据库时 它抛出了 未处理的拒绝 错误 这是我的index js文件 use strict const functions require firebase funct
  • 从 Node.js 调用 execl、execle、execlp、execv、execvP 或 execvp 的方法

    POSIX 系统公开了一系列exec函数 允许人们将可能不同的东西加载到当前进程中 保留打开的文件描述符 进程标识符等 可以出于多种原因执行此操作 在我的情况下 这是引导 我想更改我自己的进程的命令行选项 然后在现有进程上重新加载它 这样就

随机推荐

  • 若依框架注册功能

    后台 逻辑峰的博客 CSDN博客 若依框架登录注册 前台
  • 响应式开发

    响应式开发是指一个网站能够兼容多个终端 不同屏幕分辨率的终端上网页展示方式是不一样的 实现原理 根据用户的行为以及设备的不同 实现页面的不同展示效果 具体的开发过程 1 设置视口标签 width 视口的宽度 device width 设备的
  • Java使用S7协议连接西门子PLC1200、1500

    Java使用S7协议连接西门子PLC1200 1500 1 引入s7包 2 测试代码 可参考使用 1 引入s7包 使用 https github com s7connector s7connector
  • CSDN周赛59期简要题解

    本期题目相对比较友好 而且在比赛报名界面还提示了非编程题考察的章节 诚不欺我 本期非编程题需要选手阅读的章节是第2章 逆向思考 从递推到递归 2 3节 堆栈和队列 遍历的数据结构 选择和判断都考到了栈的数据结构 稍微有点基础知识找出正确答案
  • 21_OpenCV复制矩阵

    本文是关于矩阵复制的相关函数 目录 1 cv repeat 根据需要重复多次复制 2 实现矩阵的转置操作 cv transpose 1 cv repeat 根据需要重复多次复制 函数原型 void cv repeat cv InputArr
  • java.net.SocketTimeoutException: Read timed out问题排查

    欢迎关注博主微信订阅号 问题日志 java sql SQLException I O Error Read timed out at net sourceforge jtds jdbc TdsCore executeSQL TdsCore
  • Windows安装Apache Maven 3.5.4

    一 安装前的准备 1 1 官网下载Apache Maven Maven 3 6 3 此时最新版 的下载地址 https maven apache org download cgi Maven其他版本的下载地址 https archive a
  • 服务器启动显示按f1f2f10,电脑开机提示按f1f2f5 电脑开机要按F1F2F5

    电脑开机要求按F1 F2 F3或F5 有朋友跟我反应说他的XP系统 开机的时候要手动按F1才可以进WIN程序 那怎么改成默认的呢 可以尝试下以下方法 方法一 开启计算机或重新启动计算机后 及时按下 Del 键进入BIOS的设置界面 随便点击
  • Android:JNI与NDK(二)交叉编译与动态库,静态库

    本篇目录 一 前言 本篇主要以window开发环境为背景介绍一下NDK开发中需要掌握的交叉编译等基础知识 选window系统主要是照顾大多数读者 mac linux操作系统基本是同样适用的 交叉编译就是在A平台编译出可以在B平台执行的文件
  • J-Link仿真器与JTAG和SWD下载与接线

    目录 1 JTAG 1 1JTAG今天被用来主要的三大功能 1 2JTAG引脚 1 3可选引脚 2 SWD 2 1 SWD引脚 2 2 可选择引脚 2 3 JTag和SWD模式引脚定义 3 J Link仿真器 4 IAR与MDK配置两种下载
  • lol服务器位置峡谷之巅,lol峡谷之巅

    英雄联盟峡谷之巅第六赛季的奖励正式的公布了 这次只要排位赛胜场最多的2000名玩家就可以领取到奥术师佐伊至臻的皮肤 很多玩家还不清楚在哪领取峡谷之巅第六赛季的奖励 下面就来为大家分享一下地址 英雄联盟的官方在7月6日的下午5点发布了最新的峡
  • QT入门Buttons之QCheckBox

    目录 一 界面布局介绍 1 布局器中的位置及使用 2 常用属性 二 属性功能介绍 1 常用信号 2 测试信号stateChanged int 3 组合框效果 三 Demo展示 此文为作者原创 转载标明出处 一 界面布局介绍 1 布局器中的位
  • 从一个对象数组中的某一个属性组成新数组,然后比较大小

    需求 从一个对象数组中的某一个属性组成新数组 然后比较大小 示例数组 原始数组 expmArr name zhangsan age 18 name lisi age 20 name wangwu age 17 name zhaoliu ag
  • 编码与调制

    一 信道 信道是信号的传输媒介 一般用来表示向某一个方向传送信息的介质 因此一条通信线路往往包含一条发送信道和一条接收信道 信道根据传输信号分为数字信道 传输数字信号 和模拟信道 传输模拟信号 根据传输介质可分为无线信道和有线信道 同时根据
  • Qt 图片适应QLabel控件大小(饱满缩放和按比例缩放)

    直接上代码 QImage Image Image load d test jpg QPixmap pixmap QPixmap fromImage Image int with ui gt labPic gt width int heigh
  • 【计算机毕业设计】基于微信小程序的流浪动物救助系统 动物领养系统

    毕设帮助 源码交流 技术解答 见文末 一 前言 目前对流浪动物的救助采用的方式非常有限 一般是通过微信群 论坛 贴吧等平台发布流浪动物信息 由其它用户参与救助 这种方式由于没有监控渠道 造成有很多骗子的出现 而且这种方式的宣传力度也不够 经
  • 服务器管理口IP及账号密码(知识汇总)

    HP管理口 ILO 默认用户 密码 Administrator password HP以前管理口登陆MP卡 通过网线连接MP卡的RJ 45口 通过telnet方式登录 默认用户 密码 Admin Admin DELL服务器管理口 idac
  • 生产级logback-spring.xml配置明细

  • win32平台中的程序转换为wince中的一些错误 . 未能为“VCCLCompilerTool”工具生成命令行

    转载自 http blog csdn net shirui1125 article details 6095774 gt ToolBox error PRJ0004 未能为 VCCLCompilerTool 工具生成命令行 从原有的平台复制
  • 第一个nodejs应用

    应用这个词很火 哪里都在用 这里的nodejs应用其实是一个站点 准确的说是运行在本地的一个小小的Http站点 但是nodejs开发主要还是集中在少数的几个核心功能上 而不是那种动辄几千几万个文件 支撑多少并发多少功能的这种大型站点 所以n