nodejs前后端交互——后端

本文讲述了如何在Node.js后端接收前端传递的参数,并将参数写入控制台启动的程序。讨论了使用process进行异步操作的问题,指出Process.stdout.on和Process.stderr.on是异步的,并不需要使用async.waterfall。同时提到,由于浏览器安全限制,需通过HTTP将结果以JSON格式返回给前端,并在前端加入条件控制数据传输。尝试将process.stdout.on数据存入全局变量未果,若可行则可简化写入TXT文件的过程。
摘要由CSDN通过智能技术生成

需求:

  1. 将前端页面获得的传参数给后端
  2. 后台有一个控制台中启动的程序,通过process将参数写入控制台
  3. 通过process得到控制台输出后将结果返回前端
var async = require('async');
var http1=require('http');
var http2=require('http');
var spawn = require('child_process').spawn;
var subProcess = spawn("bash");
var fs= require("fs");
var fs1= require("fs");
   
console.log("=============================================================");

subProcess.stdin.write('    ');      //Process写入命令启动控制台程序

var task1 =function(callback){
    var htmlget = '';
	http1.createServer(
Node.js可以作为后端语言使用,可以通过前端发送HTTP请求到后端,然后后端处理请求并返回响应数据给前端。常见的前后端交互方式有以下几种: 1. RESTful API:前端通过HTTP请求方法(GET、POST、PUT、DELETE)调用后端的API接口,后端根据请求方法和请求路径进行相应的增删改查操作,然后返回数据给前端。 2. GraphQL:GraphQL是一种新的API查询语言,可以让前端精确地指定需要获取的数据,从而避免了请求过多或请求不足的问题。 下面是一个使用Node.js实现增删改查的例子: 1. 安装依赖 ```bash npm install express body-parser mongoose --save ``` 2. 创建一个Express服务器,并连接到MongoDB数据库 ```javascript const express = require('express'); const bodyParser = require('body-parser'); const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost:27017/mydb', { useNewUrlParser: true }) .then(() => console.log('MongoDB Connected')) .catch(err => console.log(err)); const app = express(); app.use(bodyParser.json()); ``` 3. 定义Schema和Model ```javascript const Schema = mongoose.Schema; const userSchema = new Schema({ name: String, email: String, age: Number }); const User = mongoose.model('User', userSchema); ``` 4. 实现增删改查API ```javascript // 获取所有用户 app.get('/api/users', (req, res) => { User.find() .then(users => res.json(users)) .catch(err => res.status(404).json({msg: 'No users found'})); }); // 获取单个用户 app.get('/api/users/:id', (req, res) => { User.findById(req.params.id) .then(user => res.json(user)) .catch(err => res.status(404).json({msg: 'User not found'})); }); // 创建用户 app.post('/api/users', (req, res) => { const newUser = new User({ name: req.body.name, email: req.body.email, age: req.body.age }); newUser.save() .then(user => res.json(user)) .catch(err => console.log(err)); }); // 更新用户 app.put('/api/users/:id', (req, res) => { User.findByIdAndUpdate(req.params.id, { name: req.body.name, email: req.body.email, age: req.body.age }, {new: true}) .then(user => res.json(user)) .catch(err => res.status(404).json({msg: 'User not found'})); }); // 删除用户 app.delete('/api/users/:id', (req, res) => { User.findByIdAndDelete(req.params.id) .then(() => res.json({msg: 'User deleted successfully'})) .catch(err => res.status(404).json({msg: 'User not found'})); }); const port = process.env.PORT || 5000; app.listen(port, () => console.log(`Server started on port ${port}`)); ``` 以上就是一个简单的Node.js实现增删改查的例子。当然,具体实现方式还要根据具体的业务需求进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值