MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Sắp xếp các phím trong đối tượng phản hồi từ Mongoose trong ExpressJS và NodeJS

Express 'res.send phương thức nhận dạng artist đó là một Đối tượng và gọi JSON.stringify trên đó để chuyển đổi Đối tượng thành chuỗi JSON trước khi gửi. Đơn giản hóa một chút, JSON.stringify phương thức lặp lại qua artist của bạn các khóa đối tượng theo thứ tự chúng được tạo. ( Đây là liên kết đến giải thích về thứ tự phức tạp hơn. ) Điều đó giải thích hành vi hiện tại.

Những người khác có thể thích thú với các đề xuất của riêng họ về cách bạn có thể làm những gì bạn đang hướng tới, nhưng đây là một cách đơn giản để thử trước:

  • Trước tiên, hãy làm của riêng bạn JSON.stringify , sử dụng "trình thay thế" để tạo đơn đặt hàng đầu ra mà bạn muốn :

    const artistString = JSON.stringify(artist, ["realName", "stageName", ...])
    // '{"realName": "Paul David Hewson", "stageName": "Bono", ...}'
    
  • Sau đó, sử dụng res.json(artistString) , thay vì res.send , để gửi chuỗi JSON của bạn với Content-Type chính xác đầu trang. (res.send sẽ giả sử bạn muốn Content-Type: “text/html” .)

Chắc chắn có nhiều cách tiếp cận phức tạp hơn, bao gồm tạo một hàm nhận các phím, sắp xếp chúng và trả về một bộ thay thế; hoặc viết .toJSON() của riêng bạn thay thế cho JSON.stringify . Bạn có thể cần thực hiện một trong những cách tiếp cận này, bởi vì bạn có các đối tượng lồng nhau; hoạt động của trình thay thế có thể là một chút khó khăn trong trường hợp này . Bạn có thể liệt kê các thuộc tính lồng nhau ngay sau thuộc tính gốc, như:

["realName", "type", ...]

nhưng vì bạn có các tên giống nhau cho một số thuộc tính lồng nhau, điều này có thể hiệu quả với bạn hoặc không. Bạn có thể phải xâu chuỗi bên trong trước khi xâu chuỗi bên ngoài (gah!).

Trong mọi trường hợp, hy vọng gợi ý của tôi có thể là bước đầu tiên.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. làm thế nào để thêm --auth cho hình ảnh mongodb khi sử dụng docker-compile?

  2. MongoDB $ unset Nếu điều kiện được đáp ứng

  3. FindIterable <Document> có tải tất cả tài liệu không?

  4. Mongo shell thực hiện truy vấn từ tệp và hiển thị kết quả

  5. Nút tham chiếu kiểu Mongodb