当前位置: 首页 > news >正文

Node.js 安装与使用及连接 MongoDB 的详细教程

下面我将详细讲解如何安装 Node.js、介绍 Node.js 的脚手架工具、使用 Express 脚手架创建项目,以及如何安装和连接 MongoDB。

一、Node.js 安装

  1. 下载 Node.js:

    • 访问 Node.js 官方网站。

    • 根据你的操作系统选择最新的 LTS(长期支持版)版本下载并安装。一般推荐使用 LTS 版本,因为它更稳定。

  2. 安装 Node.js:

    • 双击下载的安装包,按照提示完成安装。

    • 安装过程中可以选择默认设置,直接点击 "Next" 直到安装完成。

  3. 验证安装:

    • 安装完成后,打开终端(Windows 使用命令提示符或 PowerShell,macOS 和 Linux 使用 Terminal)。

    • 输入以下命令,查看 Node.js 和 npm(Node.js 包管理器)是否安装成功:

node -v
npm -v

二、Node.js 脚手架工具介绍

Node.js 脚手架工具可以帮助开发者快速创建和初始化项目。以下是一些常见的 Node.js 脚手架工具:

  1. Express Generator:

    • 用于快速生成基于 Express 框架的 Node.js 应用程序骨架。

    • 适合搭建 RESTful API 和 Web 应用。

  2. Nest CLI:

    • 用于创建基于 Nest.js 框架的项目,Nest.js 是一个支持 TypeScript 的渐进式 Node.js 框架,适用于构建企业级的服务端应用程序。

  3. Create React App:

    • 虽然这是 React 的脚手架工具,但它是基于 Node.js 的,能够快速搭建 React 前端项目。

  4. Vue CLI:

    • 用于创建 Vue.js 前端项目,同样基于 Node.js。

  5. Angular CLI:

    • 用于创建 Angular 项目,提供了强大的项目生成和管理功能。

三、使用 Express 脚手架创建 Node.js 项目

我们将以 express-generator 为例,介绍如何使用这个脚手架工具创建一个 Node.js 项目。

  1. 全局安装 express-generator
    首先,需要全局安装 express-generator,在终端中运行以下命令:

npm install -g express-generator
  1. 创建 Express 项目:

  2. 在你想要创建项目的目录中,运行以下命令来生成项目:

express myapp --view=pug
  1. 安装依赖:

    • 进入项目目录,并安装项目依赖:

cd myapp
npm install
  1. 启动服务器:

    • 安装完成后,可以运行以下命令启动服务器:

npm start
    • 打开浏览器访问 http://localhost:3000,你应该能看到 Express 默认的欢迎页面。

四、MongoDB 安装

  1. 下载 MongoDB:

    • 访问 MongoDB 官方网站。

    • 选择适合你操作系统的版本并下载。

  2. 安装 MongoDB:

    • 下载完成后,双击安装包并按照安装向导进行操作。通常可以使用默认设置。

    • 安装完成后,MongoDB 会自动作为一个服务运行。

  3. 启动 MongoDB:

    • 如果你是手动启动 MongoDB,可以在终端中输入以下命令:

mongod
    • 这将启动 MongoDB 的守护进程,并且 MongoDB 将开始在默认端口 27017 上运行。

五、Node.js 连接 MongoDB

  1. 安装 mongoose

    • 在你的 Node.js 项目中,安装 mongoose 库来连接和操作 MongoDB:

npm install mongoose

连接 MongoDB:

  • 打开项目的 app.js 文件,并添加以下代码来连接本地的 MongoDB 数据库:

const mongoose = require('mongoose');// 连接到 MongoDB
mongoose.connect('mongodb://localhost/mydatabase', {useNewUrlParser: true,useUnifiedTopology: true
});const db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {console.log('Connected to MongoDB');
});
    • 这里的 'mongodb://localhost/mydatabase' 是连接字符串,其中 mydatabase 是你要连接的数据库名称。可以替换为你想要使用的数据库名。

  • 创建模型:

    • 在项目的 models 文件夹中创建一个新的 user.js 文件,用于定义一个简单的用户模型:

const mongoose = require('mongoose');const userSchema = new mongoose.Schema({name: String,age: Number
});const User = mongoose.model('User', userSchema);module.exports = User;

在路由中使用模型:

  • 例如,在 routes/index.js 中添加以下代码来保存一个用户到数据库中:

const express = require('express');
const router = express.Router();
const User = require('../models/user');/* GET home page. */
router.get('/', async function(req, res, next) {const user = new User({ name: 'Alice', age: 25 });await user.save();res.send('User saved!');
});module.exports = router;
  1. 测试连接:

    • 重新启动服务器,访问 http://localhost:3000,如果你看到 User saved!,说明你已经成功将 Node.js 与 MongoDB 连接并保存了一个用户到数据库。

结论

通过本教程,你已经了解了如何安装 Node.js,了解常见的 Node.js 脚手架工具,使用 Express Generator 创建一个 Node.js 项目,并成功连接到 MongoDB 数据库。你可以在此基础上进一步开发,添加更多的功能,打造完整的应用程序。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • uniapp重新编译在微信开发者工具跳转指定页面
  • 虹科方案 | 领航智能交通革新:虹科PEAK智行定位车控系统Demo版亮相
  • 如何使用 Nginx 解决跨域问题 (CORS)
  • 人工智能边缘计算应用教学解决方案
  • tomcat初步学习
  • IntelliJ IDEA的maven配置
  • 推荐系统实战第六章-粗排和重排(上)粗排
  • 2000-2022年 中国31个省农村用电量
  • kali 中文输入
  • 统一身份认证服务(CAS)系统实现SSO认识
  • Xshell 连接 Ubuntu 服务器失败问题(Connection failed)
  • 【红队技巧】.Net免杀 绕过主流杀软
  • 打卡55天------图论(并查集)
  • 微信小程序flex-grow无效
  • 智领云开源KDP:深度剖析其与主流数据平台的性能与特性对比
  • 「译」Node.js Streams 基础
  • CentOS 7 修改主机名
  • Cumulo 的 ClojureScript 模块已经成型
  • ES6 学习笔记(一)let,const和解构赋值
  • Golang-长连接-状态推送
  • interface和setter,getter
  • Java 最常见的 200+ 面试题:面试必备
  • laravel 用artisan创建自己的模板
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • npx命令介绍
  • php面试题 汇集2
  • Python学习之路13-记分
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • Spark RDD学习: aggregate函数
  • vue.js框架原理浅析
  • Xmanager 远程桌面 CentOS 7
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 前端面试之闭包
  • 前端相关框架总和
  • 设计模式走一遍---观察者模式
  • 正则学习笔记
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • $.proxy和$.extend
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (12)Linux 常见的三种进程状态
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (3)nginx 配置(nginx.conf)
  • (二)测试工具
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (力扣)1314.矩阵区域和
  • (十)Flink Table API 和 SQL 基本概念
  • (实测可用)(3)Git的使用——RT Thread Stdio添加的软件包,github与gitee冲突造成无法上传文件到gitee
  • (一)Thymeleaf用法——Thymeleaf简介
  • (杂交版)植物大战僵尸
  • (转)Unity3DUnity3D在android下调试
  • *上位机的定义
  • ../depcomp: line 571: exec: g++: not found
  • .gitignore
  • .net 7和core版 SignalR