codecamp

Express Web Framework (Node.js/JavaScript)

先决条件

在启动此模块之前,您需要了解什么是服务器端Web编程和Web框架,最好是阅读我们的服务器端网站编程第一步模块中的主题 强烈建议您了解编程概念和 JavaScript 的一般知识,但不必了解核心概念

注意:此网站有许多有用的资源,可用于在客户端开发环境下学习JavaScript : -CN / docs / Web / JavaScript"> JavaScript JavaScript指南 JavaScript基础 JavaScript (学习)。 核心JavaScript语言和概念对于Node.js上的服务器端开发是相同的,这种材料将是相关的。 Node.js提供其他API ,用于支持 在无浏览器环境中有用,例如 创建HTTP服务器并访问文件系统,但不支持使用浏览器和DOM的JavaScript API。

本指南将提供有关使用Node.js和Express的一些信息,Internet上和书中还有许多其他优秀的资源 - 其中一些链接从 / 894359"class ="external">如何开始使用Node.js (StackOverflow)和 for-learning-Node-js?" class ="external">学习Node.js最好的资源是什么?(Quora)。

指南

Express/Node introduction
In this first Express article we answer the questions "What is Node?" and "What is Express?" and give you an overview of what makes the Express web framework special. We'll outline the main features, and show you some of the main building blocks of an Express application (although at this point you won't yet have a development environment in which to test it).
Setting up a Node (Express) development environment
Now that you know what Express is for, we'll show you how to set up and test a Node/Express development environment on Windows, Linux (Ubuntu), and Mac OS X. Whatever common operating system you are using, this article should give you what you need to be able to start developing Express apps.
Express Tutorial: The Local Library website
The first article in our practical tutorial series explains what you'll learn, and provides an overview of the "local library" example website we'll be working through and evolving in subsequent articles.
Express Tutorial Part 2: Creating a skeleton website
This article shows how you can create a "skeleton" website project, which you can then go on to populate with site-specific routes, templates/views and databases.
Express Tutorial Part 3: Using a Database (with Mongoose)
This article briefly introduces databases for Node/Express. It then goes on to show how we can use Mongoose to provide database access for the LocalLibrary website. It explains how object schema and models are declared, the main field types, and basic validation. It also briefly shows a few of the main ways you can access model data.
Express Tutorial Part 4: Routes and controllers
In this tutorial we'll set up routes (URL handling code) with "dummy" handler functions for all the resource endpoints that we'll eventually need in the LocalLibrary website. On completion we'll have a modular structure for our route handling code, that we can extend with real handler functions in the following articles. We'll also have a really good understanding of how to create modular routes using Express.
Express Tutorial Part 5: Displaying library data
We're now ready to add the pages that display the LocalLibrary website books and other data. The pages will include a home page that shows how many records we have of each model type, and list and detail pages for all of our models. Along the way we'll gain practical experience in getting records from the database, and using templates.
Express Tutorial Part 6: Working with forms
In this tutorial we'll show you how to work with HTML Forms in Express, using Pug, and in particular how to write forms to create, update, and delete documents from the database.
Express Tutorial Part 7: Deploying to production
Now you've created an awesome LocalLibrary website, you're going to want to install it on a public web server so that it can be accessed by library staff and members over the Internet. This article provides an overview of how you might go about finding a host to deploy your website, and what you need to do in order to get your site ready for production.

注意:这是教程文章的结尾(目前为止)。 如果你想扩展它,其他有趣的话题包括:

  • Using sessions
  • User authentication
  • User authorisation and permissions
  • Testing an Express web application
  • Web security for Express web applications.

当然,有一个评估任务是非常好的!

服务器端网页编程
常见问题
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录
CSS

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }