Đây là một bản hack khủng khiếp. Nó sẽ lộ ra một phương thức không được bảo vệ mà viết cho DB của bạn.
Nhưng nó hoạt động.
Tôi thực sự bực mình vì thiếu tính năng này vì vậy tôi đã đào sâu vào số Velocity code để tìm hiểu rằng họ có bộ sưu tập VelocityLogs
có thể truy cập toàn cầu. Nhưng bạn cần phải truy cập nó từ sản xuất của bạn, không phải thử nghiệm, ví dụ để xem nó trong các phóng viên web. Vì vậy, sau đó nó đã cho tôi một thời gian tốt để có được Meteor CORS được kích hoạt, nhưng cuối cùng tôi đã quản lý - ngay cả đối với Firefox - để tạo một tuyến đường mới trong IronRouter đến POST
thông điệp tường trình tới. (CORS có thể đẹp hơn với this suggestion - nhưng bạn thực sự không nên phơi bày điều này.)
Bạn cần phải meteor add http
cho việc này.
Nơi ngoài của/kiểm tra:
if Meteor.isServer
Router.route 'log', ->
if @request.method is 'OPTIONS'
@response.setHeader 'Access-Control-Allow-Origin', '*'
@response.setHeader 'Access-Control-Allow-Methods', 'POST, OPTIONS'
@response.setHeader 'Access-Control-Max-Age', 1000
@response.setHeader 'Access-Control-Allow-Headers', 'origin, x-csrftoken, content-type, accept'
@response.end()
return
if @request.method is 'POST'
logEntry = @request.body
logEntry.level ?= 'unspecified'
logEntry.framework ?= 'log hack'
logEntry.timestamp ?= moment().format("HH:mm:ss.SSS")
_id = VelocityLogs.insert(logEntry)
@response.setHeader 'Access-Control-Allow-Origin', '*'
@response.end(_id)
return
, where: 'server'
Trongtests/mocha/lib
hoặc tương tự, như một chức năng tiện ích:
@log = (message, framework, level) ->
HTTP.post "http://localhost:3000/log",
data: { message: message, framework: framework, level: level}
(error) -> console.dir error
Đối với kẻ thù ghét cà phê: coffeescript.org> TRY VỚI DOANH NGHIỆP> Dán mã để chuyển đổi> Nhận JavaScript cũ tốt của bạn.
Nguồn
2015-04-28 18:28:10