VietTuts

Tự Học Lập Trình Online

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • C#
  • Python
  • PHP
  • Excel
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
    • HTML5
    • Node.js
    • Angular 7
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Eclipse
    • Phần mềm tiện ích
    • Cấu trúc DL&GT
    • Selenium Test

Học Node.js

Node.js là gì? Cài đặt Node.js Giới thiệu qua về Module Ứng dụng Hello World REPL Terminal Node.js NPM Callback trong Node.js Event Loop trong Node.js Lớp EventEmitter Khái niệm Buffer Khái niệm Stream Đọc/Ghi File Các đối tượng Global Đối tượng Console Đối tượng Process Giới thiệu Express Framework RESTFul API là gì? Một số Utility Module Web Module OS Module path Module net Module dns Module domain Module
1 / 3
❮ ❯

NPM trong Node.js


REPL Terminal trong Node.js
Callback trong Node.js

Nội dung chính

  • NPM là gì?
  • Cài đặt các Module bởi sử dụng npm trong Node.js
  • Cài đặt Global và cài đặt local
  • Sử dụng gói package.json
  • Các thuộc tính của Package.json
  • Gỡ cài đặt một module trong Node.js
  • Cập nhật một Module trong Node.js
  • Tìm kiếm một Module trong Node.js
  • Tạo một Module trong Node.js

NPM là gì?

NPM viết tắt của Node package manager là một công cụ tạo và quản lý các thư viện lập trình Javascript cho Node.js.

Trong các dự án với javascript thì chắc hẳn các bạn sẽ cần nhiều thư viện của javascript. Điển hình như jquery, bootstrap, express, vue, react, angular, ... thì việc quản lý các thư viện này như thế nào, dùng phiên bản bao nhiêu, cần require thêm những module gì. Những công việc này nếu làm thủ công thì quả là cực, đặc biệt là những dự án lớn.

NPM được cài đặt cùng với Node.js từ phiên bản v0.6.3. Để xác nhận việc này, mở cửa sổ dòng lệnh, gõ những lệnh sau và xem kết quả:

Kiểm tra phiên bản npm: npm --version

NPM trong Node.js

Có thể dễ dàng cập nhật bản mới nhất. Sử dụng lệnh sau đây dưới quyền Administrator: npm install npm -g

NPM trong Node.js

Cài đặt các Module bởi sử dụng npm trong Node.js

Dưới đây là cú pháp đơn giản để cài đặt bất kỳ Node.js Module nào:

> npm install [Module Name]

Ví dụ: lệnh để cài đặt một module rất phổ biến trong Node.js, đó là express Module:

> npm install express
NPM trong Node.js

Để sử dụng module express trong file js của bạn, sử dụng cú pháp sau đây:


var express = require('express');

Cài đặt Global và cài đặt local

Mặc định, npm cài đặt bất kì phụ thuộc nào trên máy tính local. Ở đây, module này hướng đến các gói cài đặt trong thư mục node_modules trong thư mục ứng dụng của Node. Gói local này có thể triển khai dựa vào phương thức require(). Ví dụ, khi bạn cài đặt Module express, bạn tạo thư mục node_modules trong thư mục hiện tại nơi bạn có thể cài đặt Module này.

Cách khác, bạn có thể sử dụng lệnh npm ls để liệt kê các thư mục Module cài đặt.

Gói cài đặt toàn cục được lưu trữ trong các file hệ thống. Các phụ thuộc có thể được sử dụng với các hàm CLI (Command Line Interface) của node.js nhưng không thể import sử dụng require() của ứng dụng Node một cách trực tiếp.

Bây giờ cùng thử cài đặt Module express sử dụng cài đặt toàn cục như sau: npm install express -g

> npm install express -g

Điều này sẽ cho kết quả tương tự nhưng Module được cài đặt toàn cục. Ở đây, dòng đầu tiên nói với chúng ta về Module version và nơi chứa các bộ cài khi bắt đầu.

Bạn cũng có thể sử dụng lệnh sau đây để kiểm tra các phiên bản cài đặt toàn cục: npm ls -g

> npm ls -g

Sử dụng gói package.json

Package.json hiển thị trong thư mục root của bất cứ ứng dụng Node nào và được sử dụng để định nghĩa thuộc tính của gói. Tập tin package.json của gói express hiển thị trong node_modules/express/:


{
  "_from": "express@^4.17.1",
  "_id": "express@4.17.1",
  "_inBundle": false,
  "_integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
  "_location": "/express",
  "_phantomChildren": {},
  "_requested": {
    "type": "range",
    "registry": true,
    "raw": "express@^4.17.1",
    "name": "express",
    "escapedName": "express",
    "rawSpec": "^4.17.1",
    "saveSpec": null,
    "fetchSpec": "^4.17.1"
  },
  "_requiredBy": [
    "#USER",
    "/"
  ],
  "_resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
  "_shasum": "4491fc38605cf51f8629d39c2b5d026f98a4c134",
  "_spec": "express@^4.17.1",
  "_where": "E:\\nodejs\\express",
  "author": {
    "name": "TJ Holowaychuk",
    "email": "tj@vision-media.ca"
  },
  "bugs": {
    "url": "https://github.com/expressjs/express/issues"
  },
  "bundleDependencies": false,
  "contributors": [
    {
      "name": "Aaron Heckmann",
      "email": "aaron.heckmann+github@gmail.com"
    },
    {
      "name": "Ciaran Jessup",
      "email": "ciaranj@gmail.com"
    },
    {
      "name": "Douglas Christopher Wilson",
      "email": "doug@somethingdoug.com"
    },
    {
      "name": "Guillermo Rauch",
      "email": "rauchg@gmail.com"
    },
    {
      "name": "Jonathan Ong",
      "email": "me@jongleberry.com"
    },
    {
      "name": "Roman Shtylman",
      "email": "shtylman+expressjs@gmail.com"
    },
    {
      "name": "Young Jae Sim",
      "email": "hanul@hanul.me"
    }
  ],
  "dependencies": {
    "accepts": "~1.3.7",
    "array-flatten": "1.1.1",
    "body-parser": "1.19.0",
    "content-disposition": "0.5.3",
    "content-type": "~1.0.4",
    "cookie": "0.4.0",
    "cookie-signature": "1.0.6",
    "debug": "2.6.9",
    "depd": "~1.1.2",
    "encodeurl": "~1.0.2",
    "escape-html": "~1.0.3",
    "etag": "~1.8.1",
    "finalhandler": "~1.1.2",
    "fresh": "0.5.2",
    "merge-descriptors": "1.0.1",
    "methods": "~1.1.2",
    "on-finished": "~2.3.0",
    "parseurl": "~1.3.3",
    "path-to-regexp": "0.1.7",
    "proxy-addr": "~2.0.5",
    "qs": "6.7.0",
    "range-parser": "~1.2.1",
    "safe-buffer": "5.1.2",
    "send": "0.17.1",
    "serve-static": "1.14.1",
    "setprototypeof": "1.1.1",
    "statuses": "~1.5.0",
    "type-is": "~1.6.18",
    "utils-merge": "1.0.1",
    "vary": "~1.1.2"
  },
  "deprecated": false,
  "description": "Fast, unopinionated, minimalist web framework",
  "devDependencies": {
    "after": "0.8.2",
    "connect-redis": "3.4.1",
    "cookie-parser": "~1.4.4",
    "cookie-session": "1.3.3",
    "ejs": "2.6.1",
    "eslint": "2.13.1",
    "express-session": "1.16.1",
    "hbs": "4.0.4",
    "istanbul": "0.4.5",
    "marked": "0.6.2",
    "method-override": "3.0.0",
    "mocha": "5.2.0",
    "morgan": "1.9.1",
    "multiparty": "4.2.1",
    "pbkdf2-password": "1.2.1",
    "should": "13.2.3",
    "supertest": "3.3.0",
    "vhost": "~3.0.2"
  },
  "engines": {
    "node": ">= 0.10.0"
  },
  "files": [
    "LICENSE",
    "History.md",
    "Readme.md",
    "index.js",
    "lib/"
  ],
  "homepage": "http://expressjs.com/",
  "keywords": [
    "express",
    "framework",
    "sinatra",
    "web",
    "rest",
    "restful",
    "router",
    "app",
    "api"
  ],
  "license": "MIT",
  "name": "express",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/expressjs/express.git"
  },
  "scripts": {
    "lint": "eslint .",
    "test": "mocha --require test/support/env --reporter spec --bail --check-leaks test/ test/acceptance/",
    "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --require test/support/env --reporter spec --check-leaks test/ test/acceptance/",
    "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --require test/support/env --reporter dot --check-leaks test/ test/acceptance/",
    "test-tap": "mocha --require test/support/env --reporter tap --check-leaks test/ test/acceptance/"
  },
  "version": "4.17.1"
}

Các thuộc tính của Package.json

  • name - tên của package

  • version - phiên bản của package

  • description - phần mô tả của package

  • homepage - trang chủ của package

  • author - tác giả của package

  • contributors - tên người đóng góp cho package

  • dependencies - Danh sách các gói phụ thuộc, tự động được cài theo.

  • repository - loại repository và url của package

  • main - điểm vào của package

  • keywords - các từ khóa


Gỡ cài đặt một module trong Node.js

Sử dụng các dòng lệnh dưới đây để gỡ một Module trong Node.js

> npm uninstall express

Khi gỡ cài đặt gói này, bạn có thể xác nhận nội dung trong thư mục /node_modules/ bằng cách sử dụng lệnh sau đây:

> npm ls

Cập nhật một Module trong Node.js

Cập nhật gói package.json và thay đổi phiên bản của các ràng buộc mà có thể cập nhật sử dụng lệnh sau đây:

> npm update express

Tìm kiếm một Module trong Node.js

Sử dụng npm, bạn có thể tìm kiếm một Module như sau:

> npm search express

Tạo một Module trong Node.js

Quá trình tạo Module yêu cầu gói package.json được tạo ra.

> npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sane defaults.See 'npm help json' for definitive documentation on these fields
and exactly what they do.Use 'npm install  --save' afterwards to install a package and
save it as a dependency in the package.json file.Press ^C at any time to quit.
name: (webmaster)

Bạn cần cung cấp tất cả các thông tin được yêu cầu trong việc sử dụng Module. Bạn có thể sử dụng các bước bên trên trong file package.json để hiểu về ý nghĩa của các thông tin yêu cầu. Khi gói package.json được tạo ra, sử dụng các lệnh dưới đây đăng ký với trang npm bởi sử dụng địa chỉ email hợp lệ.

> npm adduser
Username: mcmohd
Password:
Email: (this IS public) mcmohd@gmail.com

Bây giờ publish Module của bạn:

> npm publish

Nếu mọi thứ ok, nó sẽ được publish và thư mục này sẽ được truy cập bởi những người khác sử dụng Module Node.js


REPL Terminal trong Node.js
Callback trong Node.js

Recent Updates

Domain Module trong Node.jsDNS Module trong Node.jsNet Module trong Node.jsPath Module trong Node.jsOS Module trong Node.jsWeb Module trong Node.jsUtility Module trong Node.jsRestFul API trong Node.jsExpress Framework trong Node.jsĐối tượng Process trong Node.jsĐối tượng Console trong Node.jsĐối tượng Global trong Node.jsSắp Tết 2026 Rồi! - Còn bao nhiêu ngày nữa là đến tết 2026?

VietTuts on facebook

Học Lập Trình Online Miễn Phí - VietTuts.Vn
Danh Sách Bài Học

Học Java | Hibernate | Spring
Học Excel | Excel VBA
Học Servlet | JSP | Struts2
Học C | C++ | C#
Học Python
Học SQL

Bài Tập Có Lời Giải

Bài tập Java
Bài tập C
Bài tập C++
Bài tập C#
Bài tập Python
Ví dụ Excel VBA

Câu Hỏi Phỏng Vấn

201 câu hỏi phỏng vấn java
25 câu hỏi phỏng vấn servlet
75 câu hỏi phỏng vấn jsp
52 câu hỏi phỏng vấn Hibernate
70 câu hỏi phỏng vấn Spring
57 câu hỏi phỏng vấn SQL

Scroll back to top

Copyright © 2016 VietTuts.Vn all rights reserved. | Liên hệ | Chính sách - riêng tư | sitemap.html | sitemap_index.xml