Express——参数传递和图片传输

分享了在团队项目中使用NodeJS+Express+MySQL进行服务端开发的经验,包括参数传递、图片传输等知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

牢骚

前不久刚完成系统分析与设计课程的团队作业,在这次团队开发中,我负责的是服务端代码。在这方面我是个百分百的小白,之所以会接服务端的锅,一是因为团队里的其他队员也没有相关经验,二是想锻炼自己,毕竟整个大学学习生涯也不能只了解前端开发的知识。

整个团队作业持续了大概三个月,总的来说还是学到了不少东西的。服务端我选择的是NodeJS+Express+MySQL的框架,选择理由的话…是因为大佬推荐,毕竟我在这方面真的是完全不懂,所以只能靠问别人啦。总的来说Express的确是挺适合新手使用的一种框架,提供了各种中间件来完成业务逻辑,简化代码,提高开发效率,下面我就来说几点比较常用的知识点,给大家作参考。

参数传递
  • GET方法的参数
    req.query.XX即可获取
    var app = express();  
    var router = express.Router();
    
    app.use(bodyParser.urlencoded({ extended: false }));
    
    router.get('/users', function(req, res, next) {
    	const sql = 'select `uid` from `operations` where mid=' + req.query.mid + ';';
    	db.query(sql, function(err, rows) {
    	if (err) {
     		res.json(200, {
       			msg : "mission not exists"
     		});
    	} else {
     		res.json(200, rows);
    	}
    	});
    });
    
  • 占位符传参
    localhost/user/xxx的形式
    var router = express.Router();	
    
    router.get('/user/:name', function(req, res, next) {
    	res.json(200, {
    		msg : "Name is" + req.params.name
    	});
    });
    
  • Request body参数
    这种传参方式是最常见的,常用在POST、PUT和DELETE方法里
    var router = express.Router();	
    
    router.post('/user', function(req, res, next) {
    	res.json(200, {
    		msg : "Name is" + req.body.name
    	});
    });
    
图片传输
  • 接收图片
    接收图片其实是接收文件的一种,我使用的是multer中间件
    //dest参数是图片保存在本地的位置
    var router = express.Router();	
    const upload = multer({ dest: 'C:/Users/Administrator/Desktop/image' })	
    
    router.post('/image', upload.single('file'), function(req, res, next){
    	var file = req.file;
    	res.json(200, {
      		msg : 'success',
      		imgs_url : 'http://example.com/image/' + file.filename //返回图片URL
    	});
    });
    
  • 发送图片
    发送图片其实指的是客户端能通过URL访问服务器上的图片
    var router = express.Router();	
    
    router.get('/image/:name', function(req, res, next) {
    	//建议使用绝对路径查找图片
    	const rs = fs.createReadStream('../../../image/' + req.params.name);
    	rs.pipe(res);
    });
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值