2017-03-09 23 views
9

Tôi có một vấn đề lạ khi cố gắng để render một .ejs hồ sơ tại đây dòng cụ thểNodeJs - esc không phải là một chức năng

TypeError: /home/me/nodeapp/app/views/default/page/connection.ejs:66 
     64|   <div class="col s12 l8"> 
     65|    <ul class="collapsible popout" data-collapsible="accordion""> 
    >> 66|     <%- include ../api_html/connection/connection_list.ejs %> 
     67|    </ul> 
     68|   </div> 

Dưới đây là lỗi

esc được không phải là một chức năng

Tôi thực sự không hiểu từ nơi lỗi này đến từ đâu. Tôi không sử dụng chức năng esc tệp ../api_html/connection/connection_list.ejs được bao gồm.

Ngoài ra, tôi không gặp vấn đề này máy chủ cục bộ của tôi (trong Windows), lỗi này được kích hoạt trong máy chủ CentOs nơi tôi chạy chính xác nodeapp tương tự.

Bất kỳ ý tưởng nào cũng sẽ được đánh giá cao!

Cảm ơn!

+0

Thử chạy '../ api_html/connection/connection_list.ejs' thông qua https://github.com/RyanZim/EJS-Lint. (Disclaimer: Tôi đã viết EJS-Lint) – RyanZim

+0

thử <% - include ("../ api_html/connection/connection_list.ejs")%> –

Trả lời

16

nhờ đầu tiên cho câu trả lời của bạn.

Tôi đã tìm ra sự cố.

Lỗi nằm trong tệp EJS được bao gồm <%- include ('../api_html/connection/connection_list.ejs') %>.

Ví dụ: nếu bạn bao gồm <% include ../partials/header %> có chứa <%= user.email %>, nó sẽ hoạt động hoàn hảo khi người dùng được xác định (người dùng đã đăng nhập) nhưng sẽ ném esc in not a function khi không.

0

Tôi không có danh tiếng để nhận xét như vậy .... Tôi chỉ thấy cùng một triệu chứng. Trong trường hợp của tôi, tôi vô tình thay đổi "currentUser.name" thành "currentUser.Name" (chữ hoa "N") từ một mẫu trong cuốn sách "Express trong hành động", phần 8.

trong routes.js

var passport = require("passport"); 
router.use(function(req, res, next) { 
    res.locals.currentUser = req.user; 
} 

views/_header.ejs

<a href="/edit"> 
    Hello <%= currentUser.Name() %> 
</a> 

khi tôi đổi lại thành "currentUser.name" các TypeError biến mất

+0

Điều đó không liên quan đến câu hỏi. Đó là lỗi Loại khác – JohnSnow

2

Khi @Dash trả lời câu hỏi, nó xảy ra khi bạn có biến không xác định trong mẫu .ejs. Có một cách khó khăn để tìm biến này và cách để làm điều đó là đặt mã mẫu trực tiếp vào tệp ejs của bạn và bây giờ khi bạn chạy ứng dụng của mình, bạn có thể thấy biến nào trong không xác định. Ví dụ, giả sử rằng bạn có index.ejs và trong tệp này bạn đã bao gồm một mẫu <%include partials/_pagination.ejs %>. Bây giờ nếu bạn gặp phải lỗi này, chỉ cần sao chép và dán mã trong tệp _pagination vào chỉ mục của bạn và chạy ứng dụng của bạn để tìm biến nào chưa được xác định.

Các vấn đề liên quan