nodejs开发入门01启动服务器

news2024/9/20 17:25:43

目录

  • 1 创建项目
  • 2 初始化项目
  • 3 创建app.js
  • 4 服务器启动代码
  • 5 浏览器里访问
  • 6 部署到云服务器
  • 总结

nodejs是一个服务器运行环境,可以让我们搭建我们自己的服务器,接收客户端的请求,并给出响应。第一篇我们介绍一下服务器的搭建以及启动过程。

1 创建项目

搭建服务器的时候,先需要在我们本地电脑进行开发,开发完毕后再上传到云服务器上。在磁盘创建一个文件夹,我这里创建一个nodejs的文件夹
在这里插入图片描述
创建好了之后,打开我们的开发工具,vscode,选择file-》open folder
在这里插入图片描述
选择我们刚刚创建的文件夹
在这里插入图片描述

2 初始化项目

既然是使用nodejs开发,需要使用nodejs的内置库和第三方的包,所以需要一个包的配置文件,package.json来记录我们包的名称和版本

在导航条点击terminal,点击New Terminal
在这里插入图片描述
在光标位置输入如下命令

npm init

在这里插入图片描述
按照我下述的配置进行配置

package name: (nodejs) 
version: (1.0.0)
description:
entry point: (index.js) app.js
test command:
git repository:
keywords:
author:
license: (ISC)

这里注意,entry point表示入口的文件,我们这里定义为app.js,入口文件意味着服务器启动的时候要调用这个脚本

执行完命令后,可以发现我们的根目录多了一个package.json文件,这就是我们的包管理器的配置文件

打开这个文件,可以看到具体的配置信息

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

修改其中的scripts脚本命令,添加启动命令

  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev":"node app.js"
  }

添加后我们就可以在terminal里输入npm run dev来启动我们的服务器,这条命令执行后其实是执行的node app.js会顺序执行app.js里的代码

3 创建app.js

将光标移动到package.json文件,点击New FIle创建我们的app.js文件
在这里插入图片描述
在这里插入图片描述

4 服务器启动代码

在app.js中输入如下代码

const http = require('http')

const server = http.createServer(function(request,response){
    response.write('hello world')
    response.end()
})

server.listen(3000,()=>console.log('server is started'))

代码的含义,第一段我们引入了nodejs的内置模块,用来创建服务器

第二段是在创建服务器的时候向客户端返回一个Hello world

第三段是启动服务器,监听3000端口

代码输入后在terminal里输入npm run dev,可以看到控制台打印了server is started
在这里插入图片描述

5 浏览器里访问

打开浏览器,输入URL

http://localhost:3000

在这里插入图片描述
可以看到页面上显示了hello world,表示我们的服务器已经搭建成功了

6 部署到云服务器

这里我们使用轻应用服务器作为搭建,模板选择nodejs
在这里插入图片描述
创建成功后,点击查看实例,打开我们的服务器
在这里插入图片描述
点击登录,跳转到登录页面
在这里插入图片描述
在这里插入图片描述
进入控制台后,我们先查看一下node的版本和npm的版本
在这里插入图片描述
创建一个文件夹用来放我们的代码
在这里插入图片描述
把我们本地的app.js和package.json上传到服务器上
在这里插入图片描述
服务器上的3000端口已经占用了,我们修改成3001,然后输入启动命令,可以看到服务器正常启动了
在这里插入图片描述
打开防火墙,开通我们的3001端口
在这里插入图片描述
然后使用公网IP加端口号就实现了我们本地一样的效果,当然了如果有域名,配置上域名就可以使用域名访问了

总结

本篇我们介绍了使用Nodejs搭建属于自己服务器的过程,介绍了本地搭建以及使用轻应用服务器搭建的过程。拥有一台自己管理和配置的服务器还是比较重要的,虽然我们可以使用各种付费SaaS,但是产品的控制权在对方,尤其要做一些集成开发不太方便。这样使用自己的服务器就可以做到完全可控,赶紧自己尝试一下吧。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Compose学习记录(1)

Compose学习记录(1) 简易使用HelloWorld。 新建一个工程,它已经默认启用了compose特性。MainActivity继承自 ComponentActivity,可以用compose来编写UI界面。 // sample 1: simple VersionsetContent {Text("Hello World.")}一个函数&#xf…

【项目】教你手把手完成博客系统(三)显示用户信息 | 实现退出登录 | 实现发布博客

文章目录 教你手把手完成博客系统(三)7.实现显示用户信息1.约定前后端交互接口2.前端通过ajax发起请求3.服务器处理请求 8.实现退出登录1.约定前后端的接口2.前端发起请求3.服务器处理请求 9.实现发布博客1.约定前后端的交互接口2.前端构造请求3.服务器处…

.NET调用阿里云人脸核身服务端 (ExecuteServerSideVerification)简易流程保姆级教学

需要注意的是,以下内容仅限基础调用 功能说明 该功能是输入核验人的姓名和身份证以及人脸照片,去阿里库里面匹配,3个信息是否一致,一致则验证通过,需要注意的是,人脸有遮挡,或者刘海&#xff0…

三分钟“手撕”顺序表与ArrayList

前言: 实现顺序表的代码放开头,供大家更好的查阅,每个方法都有代码的实现。 其次我会讲解Java自带的ArrayList的实例,扩容机制ArrayList使用方法,遍历以及它的优缺点。 目录 一、自己实现的顺序表 二、Java的ArrayLi…

Flutter中如何让Android的手势导航栏完全透明?

Flutter 开发中 安卓机器都有 像ios 的手势操作栏, 也就是屏幕底下的 那条线。 但这条线默认是有颜色的 (像下面这样) 一、全屏幕方式 void main() {// 全屏沉浸式SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: []…

解决Error: error:0308010C:digital envelope routines::unsupported的四种解决方案

问题描述: 报错:Error: error:0308010C:digital envelope routines::unsupported 报错原因: 主要是因为 nodeJs V17 版本发布了 OpenSSL3.0 对算法和秘钥大小增加了更为严格的限制,nodeJs v17 之前版本没影响&am…

ROS学习笔记(16):夹缝循迹

0.前言 在笔记的第15期对巡墙驾驶的原理进行了简单讲解,而这期我们来讲一下夹缝循迹,也常被叫follow the gap,也更新一些概念。 1.探索式路径规划与避障 1.概念 无预先建图的路径规划叫探索式路径规划,例如巡墙循迹和夹缝循迹&…

解决 Spring Boot 应用启动失败的问题:Unexpected end of file from server

解决 Spring Boot 应用启动失败的问题:Unexpected end of file from server 博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的…

启动docker报错:Failed to listen on Docker Socket for the API.

说明: 1、安装部署docker完成后,启动docker报错:Failed to listen on Docker Socket for the API,如下图所示: 2、将SocketGroupdocker更改成:SocketGrouproot即可 一、解决方法: 1、执行命令…

nodejs安装配置

nodejs安装 打开nodejs官网(https://nodejs.org/en/download/package-manager),参考安装步骤操作。 更新镜像源 输入以下命令,将npm的镜像源设置为淘宝镜像。网上资料中,淘宝镜像地址多为https://registry.npm.taobao.org,这个…

OpenBayes 一周速览|TripoSR 开源:1 秒即 2D 变 3D、经典 GTZAN 音乐数据集上线

公共资源速递 This Weekly Snapshots !5 个数据集: FER2013 面部表情识别数据集 GTZAN 音乐流派分类数据集 MVTec-AD 工业异常检测数据集 UCAS-AOD 遥感目标检测数据集 Oxford 102 Flowers 花卉图片数据集 3 个教程: Latte 全球首个开…

C++青少年简明教程:switch语句

C青少年简明教程:switch语句 在C中,switch语句用于基于一个表达式的值来执行不同的代码块。这个表达式通常是一个整数类型(如int,char,或枚举类型),并且case标签必须是整数常量表达式。 语法格…

VBA高级应用30例:实现在列表框内及列表框间实现数据拖动

《VBA高级应用30例》(版权10178985),是我推出的第十套教程,教程是专门针对高级学员在学习VBA过程中提高路途上的案例展开,这套教程案例与理论结合,紧贴“实战”,并做“战术总结”,以…

【学习记录】服务器转发使用tensorboard

场景 代码在服务器上运行,想使用tensorboard查看训练的过程。 但是服务器上不能直接访问地址,所以要转发端口到本地,从而在本地网页中能够打开tensorboard。 参考:https://zhuanlan.zhihu.com/p/680596384 这时我们需要建立本地…

cad角度如何精确到0.1

可以通过更改角度精度的方式把角度的标注精确到小数点后几位,具体方法如下: 1、打开一个CAD文档,在文档中画一个角,如下图: 文章源自设计学徒自学网-https://www.sx1c.com/47920.html 2、给此角进行角度的标注&#…

网络工程师---第四十二天

1、基于子网的vlan划分配置步骤是什么? 2、基于端口的vlan划分配置步骤是什么? 3、基于MAC地址的vlan划分配置步骤是什么? 4、请简述无线局域网的组网方式有哪几种,区别是什么? 5、请简述堆叠、级联和集群作用和区别是…

多重继承引起的二义性问题和虚基类

多重继承容易引起的问题就是因为继承的成员同名而产生的二义性问题。 例:类A和类B中都有成员函数display和数据成员a,类C是类A和类B的直接派生类 情况一: class A {public:int a;void display(); }; class B {public:int a;void display; }; class C:…

基于STM32实现智能园艺系统

目录 引言环境准备智能园艺系统基础代码示例:实现智能园艺系统 土壤湿度传感器数据读取水泵控制温湿度传感器数据读取显示系统用户输入和设置应用场景:智能农业与家庭园艺问题解决方案与优化收尾与总结 1. 引言 本教程将详细介绍如何在STM32嵌入式系统…

服务器软件架构演进

服务器软件架构演进 背景介绍阶段一:单机部署阶段二:应用与数据分离部署阶段三:启用缓存优化阶段四:启用应用服务器集群阶段五:数据库读写分离阶段六:启用反向代理及CDN加速阶段七:启用分布式文…

AIGC 007-E4T基于编码器的域调优用于文本到图像模型的快速个性化!

AIGC 007-E4T基于编码器的域调优用于文本到图像模型的快速个性化! 文章目录 0 论文工作1 论文方法2 效果 0 论文工作 这篇论文提出了一种使用领域特定编码器来快速将文本到图像模型适配到新领域的方案。这种被称为基于编码器的领域微调 (E4T) 的方法,专…