Làm thế nào tôi có thể viết một mẫu chữ (chuỗi nhiều dòng) trong ES6 có chứa các dấu gạch chéo (`) trong và tự nó, (nghĩa là dấu sau).Văn bản mẫu với backticks lồng nhau (`) trong ES6
ví dụ:
var query = `
UPDATE packet
SET
`association` = "3485435",
`tagname` = "associated"
`
Lý do tôi cần nó:
Rõ ràng trong ví dụ mã của tôi ở trên.
Tôi đang cố gắng xây dựng các truy vấn node-mysql dưới dạng Strings
và lưu trữ chúng trong một biến để chuyển chúng tới mySQL. Cú pháp truy vấn mySQL yêu cầu backticks cho các truy vấn kiểu UPDATE
.
Cách duy nhất tôi có thể có cho chúng trông gọn gàng và ngăn nắp là bằng cách sử dụng mẫu chữ, nếu không truy vấn sử dụng chuỗi single-line thường xuyên tìm kiếm một nguyên nhân khủng khiếp chút họ sẽ chỉ được rất, rất dài là một số trường hợp.
Tôi cũng không muốn chấm dứt các dòng bằng cách sử dụng
\n
vì nó cồng kềnh.
Bản năng của tôi là phản ứng với ý tưởng về các chuỗi mẫu đơn giản được sử dụng để tạo truy vấn SQL, nhưng tôi đoán bạn không thực sự có bất kỳ biến nào trong ví dụ của bạn. Hãy rất cẩn thận (tức là không) về việc thêm nội suy biến tại đây, trừ khi bạn đang sử dụng chức năng thẻ mẫu cụ thể để xây dựng các truy vấn đang thực hiện tự động định kiểu theo ngữ cảnh. –
@JeremyBanks Hm, đây có phải là mối lo ngại về SQL-injection-esque không? Nếu đó là trường hợp tôi đang sử dụng 'connection.escape()' cho mỗi và mọi tham số đi qua API của tôi mà giao dịch với điều này. Tôi đang sử dụng [trình điều khiển nút mysql] (https: // github.com/felixge/node-mysql) chứa phương thức này. –
Vâng, đó là mối quan tâm của tôi. Có thể viết mã an toàn bằng cách sử dụng một cái gì đó như 'connnection.escape()', nhưng điều đó tạo ra khả năng bạn sẽ bỏ lỡ một tham số (hoặc có lối thoát được loại bỏ bởi một cái máng xối, hay cái gì đó). Xu hướng chung là cách xa mọi thứ * bao giờ * yêu cầu thoát bằng tay và liên tục sử dụng API do DB cung cấp để cung cấp giá trị rõ ràng cho biểu thức truy vấn. Có vẻ như 'node-mysql' sắp xếp sử dụng phương pháp chung cho phép bạn đặt'? 'Làm trình giữ chỗ cho các giá trị trong truy vấn và chuyển các giá trị dưới dạng mảng. Tôi đề nghị rằng, bất chấp vấn đề. –