MERN 栈:如何构建全栈 JavaScript 应用程序?
MERN 栈是指 MongoDB、Express、React 和 Node.js,它们是一组强大的工具,可以用于快速构建全栈 JavaScript 应用程序。在这篇文章中,我们将深入学习如何使用 MERN 栈构建一个全栈应用程序。
首先,我们需要了解这些技术的基础知识。MongoDB 是一种 NoSQL 数据库,用于存储非结构化和半结构化数据。它是一种高性能、灵活和可扩展的数据库,并且具有容易使用的 API。Express 是一个基于 Node.js 的 Web 应用程序框架,用于构建 Web 应用程序的后端。React 是一个基于 JavaScript 的库,用于构建 Web 应用程序的前端。Node.js 是一个运行 JavaScript 代码的平台,用于构建 Web 应用程序的后端。
现在让我们开始构建我们的应用程序。首先,我们需要安装好 MongoDB,并启动它。然后,我们需要创建一个新的 Express 应用程序。您可以使用以下命令来创建:
```
$ npm install express-generator -g
$ express my-app
```
接下来,我们需要使用以下命令安装一些必要的 Node.js 模块:
```
$ cd my-app && npm install
$ npm install mongoose body-parser cors --save
```
然后,在 app.js 文件中,我们需要添加以下代码:
```
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
var cors = require('cors');
var config = require('./config');
mongoose.connect(config.database);
mongoose.connection.on('connected', function () {
console.log('Connected to database');
});
var app = express();
app.use(cors());
app.use(bodyParser.json());
app.get('/', function (req, res) {
res.send('Hello World!');
});
app.listen(config.port, function () {
console.log('App listening on port ' + config.port);
});
```
这里我们引入了 mongoose、body-parser 和 cors 模块,并在 app.js 中配置它们。我们还定义了一个路由,它将返回一个 "Hello World!" 字符串。最后,在 config.js 文件中,我们需要添加以下内容:
```
module.exports = {
'port': process.env.PORT || 3000,
'database': 'mongodb://localhost/my-app'
};
```
现在,我们的 Express 应用程序已经准备好了。我们可以通过运行以下命令来启动它:
```
$ npm start
```
接下来,我们需要创建一个 React 前端应用程序。首先,使用以下命令创建一个新的 React 应用程序:
```
$ npx create-react-app my-app
```
然后,我们需要使用以下命令安装一些必要的 Node.js 模块:
```
$ cd my-app && npm install
$ npm install axios --save
```
接下来,在 src/App.js 文件中,我们需要添加以下代码:
```
import React, { Component } from 'react';
import axios from 'axios';
class App extends Component {
state = {
message: ''
};
componentDidMount() {
axios.get('/api/message')
.then(res => {
const message = res.data.message;
this.setState({ message });
})
.catch(err => {
console.log(err);
});
}
render() {
return (
{ this.state.message }
);
}
}
export default App;
```
这里,我们使用 axios 模块发送一个 GET 请求,以获取从 Express 应用程序返回的消息。我们将响应数据存储在组件的状态中,并在页面上显示。最后,在 package.json 文件中,定义代理服务器:
```
"proxy": "http://localhost:3000"
```
现在,我们的 React 应用程序已经准备好了。我们可以通过运行以下命令来启动它:
```
$ npm start
```
现在,我们的 MERN 应用程序已经准备好了。我们可以通过访问 http://localhost:3000 来查看它。该应用程序将显示从 Express 应用程序返回的 "Hello World!" 消息。
总结
在本文中,我们学习了如何使用 MERN 栈构建一个全栈 JavaScript 应用程序。我们了解了 MongoDB、Express、React 和 Node.js 技术的基础知识,并学习了如何在这些技术的帮助下创建一个完整的应用程序。这种技术组合可以使我们以一种快速、高效和可扩展的方式构建现代的 Web 应用程序。