এক্সপ্রেস.জসন বনাম বডি পার্সার.জসন


111

আমি একটি অপেক্ষাকৃত নতুন অ্যাপ লিখছি এবং ভাবছিলাম যেটি আমার ব্যবহার করা উচিত:

express.json()

বা

bodyParser.json()

আমি কি ধরে নিতে পারি তারা একই কাজ করে?

আমি express.json()এটি ইতিমধ্যে নির্মিত হিসাবে যেমন ব্যবহার করতে চাই ।


express@4.17.1 শুধু শরীর-পার্সার "1.19.0" ব্যবহার নির্ভরশীলতা রূপে
Tagi

উত্তর:


254

এক্সপ্রেসের পূর্ববর্তী সংস্করণগুলিতে এর সাথে অনেকগুলি মিডলওয়্যার বান্ডিল ছিল। বডি পার্সার মিডলওয়্যারগুলির মধ্যে একটি যা এটি এসেছিল came এক্সপ্রেস ৪.০ প্রকাশিত হলে তারা এক্সপ্রেস থেকে বান্ডিল মিডলওয়্যারগুলি সরানোর এবং পরিবর্তে তাদের পৃথক প্যাকেজ তৈরি করার সিদ্ধান্ত নিয়েছে। বডি পার্সার মডিউলটি ইনস্টল app.use(express.json())করার app.use(bodyParser.json())পরে বাক্য গঠনটি পরিবর্তিত হয় ।

বডি পার্সার 4.16.0 রিলিজে এক্সপ্রেসে ফিরে যুক্ত হয়েছিল, কারণ লোকেরা চাইছিল এটি আগের মতো এক্সপ্রেসের সাথে বান্ডিল হয়েছে। এর অর্থ আপনি bodyParser.json()সর্বশেষতম প্রকাশে থাকলে আপনাকে আর ব্যবহার করতে হবে না । express.json()পরিবর্তে আপনি ব্যবহার করতে পারেন ।

রিলিজের ইতিহাসটি 4.16.0 এর জন্য যারা আগ্রহী তাদের জন্য এখানে রয়েছে এবং এখানে ক্লিকের অনুরোধ রয়েছে


4
আমরা কি app.use(express.urlencoded({ extended: true }));তখন কি করতে পারি ?
রবিন ম্যাটরাল

4
হ্যাঁ হ্যাঁ, আপনি যে PR টি লিঙ্ক করেছেন তাতে এটিও উল্লেখ করা হয়েছে। দুর্দান্ত!
রবিন ম্যাটরাল

4
তার মানে কি তারা একই কাজ করে?
জিনেটো ডোমিনিয়াক

আমি যদি // ডেটা পার্সিং অ্যাপ্লিকেশন ব্যবহার করি তবে কী হবে (এক্সপ্রেস.জসন ()); অ্যাপ.উইস (এক্সপ্রেস.আরলেঙ্কডড ({প্রসারিত: মিথ্যা})); এটা কি ভালো? কারণ ইউটিউবে টিউটোরিয়াল আমাকে উভয়ই ব্যবহার করতে বলেছে
রিক্বিয়ান

4
@ ক্রিক্ভিয়ান - আপনি চাইলে উভয়ই ব্যবহার করতে পারেন। json JSON এর জন্য এবং urlencoded URL এনকোডড ডেটার জন্য। আপনি উভয় যুক্ত করলে আপনি উভয় প্রকারের বিশ্লেষণ করতে সক্ষম হবেন।
মিকা সুন্দরল্যান্ড

15

হ্যাঁ! সঠিক

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');

var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', indexRouter);
app.use('/users', usersRouter);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;

31
এই কোড স্নিপেট একটি ব্যাখ্যা সহ প্রশ্নটি সমাধান করতে পারে, যদিও সত্যিই আপনার পোস্টের মান উন্নত করতে সহায়তা করে। মনে রাখবেন যে আপনি ভবিষ্যতে পাঠকদের জন্য প্রশ্নের উত্তর দিচ্ছেন, এবং সেই লোকেরা আপনার কোড পরামর্শের কারণগুলি জানেন না।
ব্রেট ডিউউডি

8

হ্যাঁ উভয়ই সমান।

আপনি যদি নোড_মডিউল / এক্সপ্রেস / লিব / এক্সপ্রেস.জেএস ফাইলটিতে যান

আপনি মডিউল নির্ভরতার অধীনে দেখতে পাবেন বডি পার্সার মডিউলটি ইতিমধ্যে আমদানি করা হয়েছে

/**
 * Module dependencies.
 */

var bodyParser = require('body-parser')
//other modules

বডি পার্সার মডিউলের ভিতরে থাকা অবজেক্টগুলি এবং পদ্ধতিগুলি অ্যাক্সেসযোগ্য কারণ তারা বিশেষ অবজেক্ট মডিউল.এক্সপোর্টগুলি ব্যবহার করে রফতানি করা হয়

exports = module.exports = createApplication;
exports.json = bodyParser.json

এটি কেবল কল করে এক্সপ্রেস অবজেক্ট থেকে অ্যাক্সেসযোগ্য

express.json()

0

হ্যাঁ!! জনগণের বডি পার্সারকে এক্সপ্রেসের সাথে একীভূত করতে জনগণের ব্যাপক মতামতের কারণে সর্বশেষ প্রকাশটি হুবহু এটি করে does আপনার অনুমান করা ঠিক হবে যে উভয়ই একই কাজ সম্পাদন করে, তা হচ্ছে ইনকামিং রিকোয়েস্টটিকে জেএসওএন অবজেক্ট হিসাবে স্বীকৃতি দেওয়া। ব্যবহার করতে নির্দ্বিধায়।


0

হ্যাঁ!! আপনি উভয় ব্যবহার করতে পারেন। যাইহোক, যেহেতু express.json()এখনই ইতিমধ্যে নির্মিত হয়েছে express, তাই এটি ব্যবহার করার express.json()চেয়ে বুদ্ধিমানের কাজ bodyParser.json()

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.